mirror of
https://gitlab.com/comunic/comunicapiv2
synced 2024-11-22 05:19:22 +00:00
Automatically close websockets when user sign out
This commit is contained in:
parent
4901e9d3ef
commit
729ee6a2a9
@ -8,6 +8,7 @@ import { Request } from 'express';
|
|||||||
import { RequestHandler } from '../entities/RequestHandler';
|
import { RequestHandler } from '../entities/RequestHandler';
|
||||||
import { time } from '../utils/DateUtils';
|
import { time } from '../utils/DateUtils';
|
||||||
import { randomStr } from '../utils/CryptUtils';
|
import { randomStr } from '../utils/CryptUtils';
|
||||||
|
import { EventsHelper } from '../helpers/EventsHelper';
|
||||||
|
|
||||||
interface PendingRequests {
|
interface PendingRequests {
|
||||||
time: number,
|
time: number,
|
||||||
@ -121,5 +122,17 @@ export class UserWebSocketController {
|
|||||||
console.log(this.active_clients)
|
console.log(this.active_clients)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Close a specific user websocket
|
||||||
|
*
|
||||||
|
* @param clientID Target client ID
|
||||||
|
* @param userID Target user ID
|
||||||
|
*/
|
||||||
|
public static async CloseClientSockets(clientID: number, userID: number) {
|
||||||
|
for(const entry of this.active_clients.filter((f) => f.clientID == clientID && f.userID == userID))
|
||||||
|
entry.ws.close();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// When user sign out
|
||||||
|
EventsHelper.Listen("destroyed_login_tokens", (e) => UserWebSocketController.CloseClientSockets(e.client.id, e.userID));
|
Loading…
Reference in New Issue
Block a user