From a538d104885ded31dde3b23d6533de93f1f6734b Mon Sep 17 00:00:00 2001 From: Brian Gough Date: Fri, 19 Jul 2019 08:56:38 +0100 Subject: [PATCH] extend comment re disconnection --- services/real-time/app/coffee/RoomManager.coffee | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/services/real-time/app/coffee/RoomManager.coffee b/services/real-time/app/coffee/RoomManager.coffee index be44edd002..d3a3bea5e8 100644 --- a/services/real-time/app/coffee/RoomManager.coffee +++ b/services/real-time/app/coffee/RoomManager.coffee @@ -26,9 +26,11 @@ module.exports = RoomManager = @_leave client, "doc", doc_id leaveProjectAndDocs: (client) -> - # what rooms is this client in? we need to leave them all - # FIXME: socket.io will cause us to leave the rooms, so we only need - # to manage our channel subscriptions + # what rooms is this client in? we need to leave them all. socket.io + # will cause us to leave the rooms, so we only need to manage our + # channel subscriptions... but it will be safer if we leave them + # explicitly, and then socket.io will just regard this as a client that + # has not joined any rooms and do a final disconnection. for id in @_roomsClientIsIn(client) entity = IdMap.get(id) @_leave client, entity, id @@ -36,6 +38,9 @@ module.exports = RoomManager = eventSource: () -> return RoomEvents + # internal functions below, these access socket.io rooms data directly and + # will need updating for socket.io v2 + _clientsInRoom: (client, room) -> nsp = client.namespace.name name = (nsp + '/') + room;