Added last-message-time-tracking

This commit is contained in:
Werner Kroneman 2024-12-08 17:52:36 +01:00
parent 2ead42c00b
commit aecf896494

View file

@ -50,6 +50,8 @@ export default class Stream extends EventEmitter<StreamEvents> implements IStrea
private nonSharedConnections: NonSharedConnection[] = [];
private idCounter = 0;
/// A timestamp of the last-received message.
private lastMessageTime = Date.now();
constructor(origin: string, user: { token: string; } | null, options?: {
WebSocket?: WebSocket;
}) {
@ -136,6 +138,9 @@ export default class Stream extends EventEmitter<StreamEvents> implements IStrea
* Callback of when open connection
*/
private onOpen(): void {
this.lastMessageTime = Date.now();
const isReconnect = this.state === 'reconnecting';
this.state = 'connected';
@ -162,6 +167,9 @@ export default class Stream extends EventEmitter<StreamEvents> implements IStrea
* Callback of when received a message from connection
*/
private onMessage(message: { data: string; }): void {
this.lastMessageTime = Date.now();
const { type, body } = JSON.parse(message.data);
if (type === 'channel') {