From 6d200d17b70eaba163f42b3bbbb9d5ecd3a1d2d2 Mon Sep 17 00:00:00 2001 From: Jeremy Letto Date: Tue, 22 Mar 2022 17:42:58 -0500 Subject: [PATCH] close previous testConnect attempts (#4598) * close previous testConnect attempts * remove onerror handler when canceling previous attempt Co-authored-by: Jeremy Letto --- .../src/websocket/services/WebSocketService.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/webclient/src/websocket/services/WebSocketService.ts b/webclient/src/websocket/services/WebSocketService.ts index cf7777288..842864859 100644 --- a/webclient/src/websocket/services/WebSocketService.ts +++ b/webclient/src/websocket/services/WebSocketService.ts @@ -8,6 +8,8 @@ import { SessionPersistence } from '../persistence'; export class WebSocketService { private socket: WebSocket; + private testSocket: WebSocket; + private webClient: WebClient; private keepAliveService: KeepAliveService; @@ -104,6 +106,11 @@ export class WebSocketService { } private testWebSocket(url: string): void { + if (this.testSocket) { + this.testSocket.onerror = null; + this.testSocket.close(); + } + const socket = new WebSocket(url); socket.binaryType = 'arraybuffer'; @@ -118,5 +125,11 @@ export class WebSocketService { socket.onerror = () => { SessionPersistence.testConnectionFailed(); }; + + socket.onclose = () => { + this.testSocket = null; + } + + this.testSocket = socket; } }