diff --git a/packages/websocket-client/src/client.ts b/packages/websocket-client/src/client.ts index acb2f9b3a4..8e377e5d63 100644 --- a/packages/websocket-client/src/client.ts +++ b/packages/websocket-client/src/client.ts @@ -170,9 +170,9 @@ export class WebsocketClient> extends TypedEm // set connection timeout before WebSocket initialization const connectionTimeout = setTimeout( () => { - ws.emit('error', new WebsocketError('websocket_timeout')); + this.onClose(); + dfd.reject(new WebsocketError('websocket_timeout')); try { - ws.once('error', () => {}); // hack; ws throws uncaughtably when there's no error listener ws.close(); } catch { // empty @@ -237,6 +237,9 @@ export class WebsocketClient> extends TypedEm clearTimeout(this.pingTimeout); this.ws?.removeAllListeners(); + this.ws?.on('error', () => { + // Suppress errors after close + }); this.messages.rejectAll(new WebsocketError('Websocket closed unexpectedly')); }