mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-12-21 16:00:26 +01:00
on disconnect update chat rooms
This commit is contained in:
@@ -97,6 +97,10 @@ function onConnection(socket) {
|
|||||||
socket.on('disconnect', () => {
|
socket.on('disconnect', () => {
|
||||||
onDisconnect(socket);
|
onDisconnect(socket);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
socket.on('disconnecting', () => {
|
||||||
|
onDisconnecting(socket);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function onDisconnect(socket) {
|
function onDisconnect(socket) {
|
||||||
@@ -104,6 +108,19 @@ function onDisconnect(socket) {
|
|||||||
plugins.hooks.fire('action:sockets.disconnect', { socket: 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) {
|
async function onConnect(socket) {
|
||||||
try {
|
try {
|
||||||
await validateSession(socket, '[[error:invalid-session]]');
|
await validateSession(socket, '[[error:invalid-session]]');
|
||||||
|
|||||||
Reference in New Issue
Block a user