diff --git a/receivers/common/web/ConnectionMonitor.ts b/receivers/common/web/ConnectionMonitor.ts index 26e09e4..9858ff1 100644 --- a/receivers/common/web/ConnectionMonitor.ts +++ b/receivers/common/web/ConnectionMonitor.ts @@ -70,6 +70,11 @@ export class ConnectionMonitor { listener.send(Opcode.Ping, null, sessionId); ConnectionMonitor.heartbeatRetries.set(sessionId, ConnectionMonitor.heartbeatRetries.get(sessionId) + 1); } + else if (listener.getSessionProtocolVersion(sessionId) === undefined) { + ConnectionMonitor.logger.warn(`Session ${sessionId} was not found in the list of active sessions. Removing...`); + ConnectionMonitor.backendConnections.delete(sessionId); + ConnectionMonitor.heartbeatRetries.delete(sessionId); + } } } }, ConnectionMonitor.connectionPingTimeout); diff --git a/receivers/common/web/ListenerService.ts b/receivers/common/web/ListenerService.ts index 16dbb85..4d0a1e9 100644 --- a/receivers/common/web/ListenerService.ts +++ b/receivers/common/web/ListenerService.ts @@ -82,7 +82,7 @@ export abstract class ListenerService { } public getSessionProtocolVersion(sessionId: string) { - return this.sessionMap.get(sessionId).protocolVersion; + return this.sessionMap.get(sessionId)?.protocolVersion; } private isSubscribedToEvent(sessionId: string, event: EventSubscribeObject) {