From 3b7756924fe74664423c67420fb777b58bdbdbe9 Mon Sep 17 00:00:00 2001 From: Julian Krauser Date: Tue, 4 Mar 2025 15:03:07 +0100 Subject: [PATCH] fix: clear editors on disconnect --- src/websocket/endpoints/base.ts | 25 ++++++++++++++++++++ src/websocket/endpoints/missionManagement.ts | 1 - 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/websocket/endpoints/base.ts b/src/websocket/endpoints/base.ts index 0ba28d7..1009bf6 100644 --- a/src/websocket/endpoints/base.ts +++ b/src/websocket/endpoints/base.ts @@ -32,6 +32,31 @@ export default (io: Server, socket: Socket) => { const socketRooms = Array.from(socket.rooms).filter((room) => room !== socket.id && room !== "home"); if (socketRooms[0]) { socket.leave(socketRooms[0]); + MissionMap.updateAwareness(socketRooms[0], { + action: "remove", + store: "editors", + update: undefined, + socketId: socket.id, + }); + io.to(socketRooms[0]).emit("package-sync-awareness", { + type: "editors", + update: undefined, + action: "remove", + socketId: socket.id, + }); + + MissionMap.updateAwareness(socketRooms[0], { + action: "remove", + store: "state", + update: undefined, + socketId: socket.id, + }); + io.to(socketRooms[0]).emit("package-sync-awareness", { + type: "state", + update: undefined, + action: "remove", + socketId: socket.id, + }); const clients = io.sockets.adapter.rooms.get(socketRooms[0]); if (!clients || clients.size == 0) { MissionMap.delete(socketRooms[0]); diff --git a/src/websocket/endpoints/missionManagement.ts b/src/websocket/endpoints/missionManagement.ts index 63b586d..f8b0dfb 100644 --- a/src/websocket/endpoints/missionManagement.ts +++ b/src/websocket/endpoints/missionManagement.ts @@ -47,7 +47,6 @@ export default (io: Server, socket: Socket) => { }); } - console.log(MissionDocHelper.getAwarenessEditors(missionId)); socket.emit("package-init-awareness", { update: MissionDocHelper.getAwarenessEditors(missionId), type: "editors",