From 6751b1bd58461188b9f3767937b9346c860f5612 Mon Sep 17 00:00:00 2001 From: Morgan Mccauley Date: Fri, 9 Aug 2024 14:38:57 +1200 Subject: [PATCH] fix: Prevent socket disconnections due to invalid auth --- src/helki_client.ts | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/helki_client.ts b/src/helki_client.ts index 45c3258..ebc4d39 100644 --- a/src/helki_client.ts +++ b/src/helki_client.ts @@ -226,6 +226,37 @@ class HelkiClient { callback(data.body); }); + + socket.on('connect_timeout', () => { + this.log.warn('Socket connection timed out'); + }); + + socket.on('reconnecting', async (attempt) => { + this.log.info('Reconnecting to socket. Attempt: ', attempt); + + await this.checkRefresh(); + socket.io.opts.query.token = this.accessToken; + }); + + socket.on('reconnect_error', (error) => { + this.log.error('Socket reconnection failed: ', error); + }); + + socket.on('connect_error', (error) => { + this.log.error('Socket connection failed: ', error); + }); + + socket.on('disconnect', async (data) => { + this.log.debug('Socket disconnected, attempting reconnect: ', data); + + await this.checkRefresh(); + socket.io.opts.query.token = this.accessToken; + socket.connect(); + }); + + socket.on('connect', () => { + this.log.debug('Connected to socket'); + }); } private async auth(): Promise {