diff --git a/package.json b/package.json index 6a9a5a1a..1436d5b0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "revolt.js", - "version": "3.0.1-beta.9", + "version": "3.0.1-beta.10", "main": "dist/index.js", "repository": "https://gitlab.insrt.uk/revolt/revolt.js", "author": "Paul Makles ", diff --git a/src/websocket/client.ts b/src/websocket/client.ts index dc954ae7..53b667a5 100644 --- a/src/websocket/client.ts +++ b/src/websocket/client.ts @@ -13,11 +13,20 @@ export class WebSocketClient { client: Client; ws?: WebSocket; + connected: boolean; + ready: boolean; + constructor(client: Client) { this.client = client; + + this.connected = false; + this.ready = false; } disconnect() { + this.connected = false; + this.ready = false; + if (typeof this.ws !== 'undefined' && this.ws.readyState === WebSocket.OPEN) { this.ws.close(); } @@ -70,6 +79,7 @@ export class WebSocketClient { case 'Authenticated': { disallowReconnect = false; this.client.emit('connected'); + this.connected = true; break; } case 'Ready': { @@ -89,6 +99,7 @@ export class WebSocketClient { } this.client.emit('ready'); + this.ready = true; resolve(); break; } @@ -188,6 +199,9 @@ export class WebSocketClient { ws.onclose = () => { this.client.emit('dropped'); + this.connected = false; + this.ready = false; + if (!disallowReconnect && this.client.options.autoReconnect) { backOff(() => this.connect(true)).catch(reject); }