diff --git a/frontend/app/player/MessageDistributor/managers/AssistManager.ts b/frontend/app/player/MessageDistributor/managers/AssistManager.ts index 2ba90311e..b8682b09b 100644 --- a/frontend/app/player/MessageDistributor/managers/AssistManager.ts +++ b/frontend/app/player/MessageDistributor/managers/AssistManager.ts @@ -119,8 +119,16 @@ export default class AssistManager { const jmr = new JSONRawMessageReader() const reader = new MStreamReader(jmr) let waitingForMessages = true - let showDisconnectTimeout: ReturnType | undefined + let disconnectTimeout: ReturnType | undefined let inactiveTimeout: ReturnType | undefined + function clearDisconnectTimeout() { + disconnectTimeout && clearTimeout(disconnectTimeout) + disconnectTimeout = undefined + } + function clearInactiveTimeout() { + inactiveTimeout && clearTimeout(inactiveTimeout) + inactiveTimeout = undefined + } import('socket.io-client').then(({ default: io }) => { if (this.cleaned) { return } if (this.socket) { this.socket.close() } // TODO: single socket connection @@ -171,17 +179,17 @@ export default class AssistManager { id === socket.id && this.toggleRemoteControl(false) }) socket.on('SESSION_RECONNECTED', () => { - showDisconnectTimeout && clearTimeout(showDisconnectTimeout) - inactiveTimeout && clearTimeout(inactiveTimeout) + clearDisconnectTimeout() + clearInactiveTimeout() this.setStatus(ConnectionStatus.Connected) }) socket.on('UPDATE_SESSION', ({ active }) => { - showDisconnectTimeout && clearTimeout(showDisconnectTimeout) + clearDisconnectTimeout() !inactiveTimeout && this.setStatus(ConnectionStatus.Connected) if (typeof active === "boolean") { + clearInactiveTimeout() if (active) { - inactiveTimeout && clearTimeout(inactiveTimeout) this.setStatus(ConnectionStatus.Connected) } else { inactiveTimeout = setTimeout(() => this.setStatus(ConnectionStatus.Inactive), 5000) @@ -190,8 +198,8 @@ export default class AssistManager { }) socket.on('SESSION_DISCONNECTED', e => { waitingForMessages = true - showDisconnectTimeout && clearTimeout(showDisconnectTimeout) - showDisconnectTimeout = setTimeout(() => { + clearDisconnectTimeout() + disconnectTimeout = setTimeout(() => { if (this.cleaned) { return } this.setStatus(ConnectionStatus.Disconnected) }, 30000)