Update tracking of collaboration events to only count unique users, and maybe fire in cloud envs
This commit is contained in:
parent
e5274f9bf4
commit
fe5d5ce075
|
@ -18,13 +18,19 @@ export default class BuilderSocket extends BaseSocket {
|
||||||
// Initial identification of selected app
|
// Initial identification of selected app
|
||||||
socket?.on(BuilderSocketEvent.SelectApp, async ({ appId }, callback) => {
|
socket?.on(BuilderSocketEvent.SelectApp, async ({ appId }, callback) => {
|
||||||
await this.joinRoom(socket, appId)
|
await this.joinRoom(socket, appId)
|
||||||
|
|
||||||
// Reply with all users in current room
|
|
||||||
const sessions = await this.getRoomSessions(appId)
|
const sessions = await this.getRoomSessions(appId)
|
||||||
callback({ users: sessions })
|
|
||||||
|
|
||||||
// Track usage
|
// Track collaboration usage by unique users
|
||||||
await events.user.dataCollaboration(sessions.length)
|
let userIdMap: any = {}
|
||||||
|
sessions?.forEach(session => {
|
||||||
|
if (session._id) {
|
||||||
|
userIdMap[session._id] = true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
await events.user.dataCollaboration(Object.keys(userIdMap).length)
|
||||||
|
|
||||||
|
// Reply with all current sessions
|
||||||
|
callback({ users: sessions })
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue