From a2f868051404f42650a000c77cb20f8c55f0d839 Mon Sep 17 00:00:00 2001 From: Amish Shah Date: Sat, 13 Aug 2016 16:23:24 +0100 Subject: [PATCH] Fix protocol versions --- src/client/rest/RESTMethods.js | 5 ++++- src/client/websocket/WebSocketManager.js | 9 ++++++--- src/client/websocket/packets/handlers/Ready.js | 1 - 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/client/rest/RESTMethods.js b/src/client/rest/RESTMethods.js index 9eff9d3d1..abb5390da 100644 --- a/src/client/rest/RESTMethods.js +++ b/src/client/rest/RESTMethods.js @@ -30,7 +30,10 @@ class RESTMethods { getGateway() { return new Promise((resolve, reject) => { this.rest.makeRequest('get', Constants.Endpoints.gateway, true) - .then(res => resolve(res.url)) + .then(res => { + this.rest.client.store.gateway = `${res.url}/?encoding=json&v=${this.rest.client.options.protocol_version}`; + resolve(this.rest.client.store.gateway); + }) .catch(reject); }); } diff --git a/src/client/websocket/WebSocketManager.js b/src/client/websocket/WebSocketManager.js index 4ac300004..08df59b46 100644 --- a/src/client/websocket/WebSocketManager.js +++ b/src/client/websocket/WebSocketManager.js @@ -16,7 +16,6 @@ class WebSocketManager { connect(gateway) { this.status = Constants.Status.CONNECTING; - this.store.gateway = `${gateway}/?v=${this.client.options.protocol_version}`; this.ws = new WebSocket(gateway); this.ws.onopen = () => this.eventOpen(); this.ws.onclose = () => this.eventClose(); @@ -81,10 +80,14 @@ class WebSocketManager { return this.eventError(Constants.Errors.BAD_WS_MESSAGE); } + if (packet.op === 10) { + this.client.manager.setupKeepAlive(packet.d.heartbeat_interval); + } + return this.packetManager.handle(packet); } - EventError() { + eventError() { this.tryReconnect(); } @@ -108,7 +111,7 @@ class WebSocketManager { this.ws.close(); this.packetManager.handleQueue(); this.client.emit(Constants.Events.RECONNECTING); - this.connect(this.store.gateway); + this.connect(this.client.store.gateway); } } diff --git a/src/client/websocket/packets/handlers/Ready.js b/src/client/websocket/packets/handlers/Ready.js index e37d0a758..f49a8aa63 100644 --- a/src/client/websocket/packets/handlers/Ready.js +++ b/src/client/websocket/packets/handlers/Ready.js @@ -8,7 +8,6 @@ class ReadyHandler extends AbstractHandler { handle(packet) { const data = packet.d; const client = this.packetManager.client; - client.manager.setupKeepAlive(data.heartbeat_interval); client.store.user = client.store.add('users', new ClientUser(client, data.user));