From cfa00ece35e6d64c7b6b056a0ea140f474579463 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Fri, 14 Jul 2023 12:19:33 -0400 Subject: [PATCH] on disconnect update chat rooms --- src/socket.io/index.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/socket.io/index.js b/src/socket.io/index.js index 858223f07d..50ae9b25f6 100644 --- a/src/socket.io/index.js +++ b/src/socket.io/index.js @@ -97,6 +97,10 @@ function onConnection(socket) { socket.on('disconnect', () => { onDisconnect(socket); }); + + socket.on('disconnecting', () => { + onDisconnecting(socket); + }); } function onDisconnect(socket) { @@ -104,6 +108,19 @@ function onDisconnect(socket) { plugins.hooks.fire('action:sockets.disconnect', { socket: socket }); } +async function onDisconnecting(socket) { + if (socket.uid > 0) { + for (const roomName of socket.rooms) { + if (roomName.startsWith('chat_room') && !roomName.includes('public')) { + Sockets.server.in(roomName).emit('event:chats.user-online', { + uid: socket.uid, + state: 0, + }); + } + } + } +} + async function onConnect(socket) { try { await validateSession(socket, '[[error:invalid-session]]');