From 1bcf2fc17712bda3521abb6461f88fdf5e5de59e Mon Sep 17 00:00:00 2001 From: Alexander Daichendt Date: Wed, 12 Feb 2025 12:32:25 +0100 Subject: [PATCH] feat: propagate leave message to client --- server/src/index.ts | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/server/src/index.ts b/server/src/index.ts index 18306be..0711e17 100644 --- a/server/src/index.ts +++ b/server/src/index.ts @@ -1,4 +1,4 @@ -import type { ClientMessage } from "../../shared.ts"; +import type { ClientMessage, ServerUserLeftMessage } from "../../shared.ts"; import handleClientMessage from "./handleClientMessage.ts"; import type { Room, WebSocketData } from "./types.ts"; @@ -62,6 +62,22 @@ const server = Bun.serve({ return; } + const sender = room.userConnections.get(ws); + + if (sender) { + // notify other clients that a client has left + const leaveMessage: ServerUserLeftMessage = { + type: "USER_LEFT", + payload: { + user: sender, + }, + }; + + for (const [socket] of room.userConnections) { + socket.send(JSON.stringify(leaveMessage)); + } + } + if (room.userConnections.size === 0) { rooms.delete(roomId); console.log("Cleaned up room", roomId);