mirror of
https://github.com/hexastack/hexabot
synced 2025-06-26 18:27:28 +00:00
fix: logout disconnection sockets
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
/*
|
||||
* Copyright © 2024 Hexastack. All rights reserved.
|
||||
* Copyright © 2025 Hexastack. All rights reserved.
|
||||
*
|
||||
* Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms:
|
||||
* 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission.
|
||||
* 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file).
|
||||
*/
|
||||
|
||||
import { EventEmitter2 } from '@nestjs/event-emitter';
|
||||
import { EventEmitter2, OnEvent } from '@nestjs/event-emitter';
|
||||
import {
|
||||
ConnectedSocket,
|
||||
MessageBody,
|
||||
@@ -258,6 +258,17 @@ export class WebsocketGateway
|
||||
this.eventEmitter.emit(`hook:websocket:connection`, client);
|
||||
}
|
||||
|
||||
@OnEvent('hook:user:logout')
|
||||
disconnectSockets(sessionCookie: string) {
|
||||
if (sessionCookie.length) {
|
||||
for (const [socketId, socket] of this.io.sockets.sockets) {
|
||||
if (socket.handshake.headers.cookie?.includes(sessionCookie)) {
|
||||
this.io.sockets.sockets.get(socketId)?.disconnect(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async handleDisconnect(client: Socket): Promise<void> {
|
||||
this.logger.log(`Client id:${client.id} disconnected`);
|
||||
// Configurable custom afterDisconnect logic here
|
||||
|
||||
Reference in New Issue
Block a user