diff --git a/src/client/ClientManager.js b/src/client/ClientManager.js index 552554b7a..dc255cfcf 100644 --- a/src/client/ClientManager.js +++ b/src/client/ClientManager.js @@ -49,6 +49,7 @@ class ClientManager { */ setupKeepAlive(time) { this.heartbeatInterval = this.client.setInterval(() => { + this.client.emit('debug', 'SENDING HEARTBEAT'); this.client.ws.send({ op: Constants.OPCodes.HEARTBEAT, d: this.client.ws.sequence, diff --git a/src/client/websocket/WebSocketManager.js b/src/client/websocket/WebSocketManager.js index aee234cc5..bc22249d2 100644 --- a/src/client/websocket/WebSocketManager.js +++ b/src/client/websocket/WebSocketManager.js @@ -221,7 +221,7 @@ class WebSocketManager extends EventEmitter { this.client.emit('raw', packet); - if (packet.op === 10) this.client.manager.setupKeepAlive(packet.d.heartbeat_interval); + if (packet.op === Constants.OPCodes.HELLO) this.client.manager.setupKeepAlive(packet.d.heartbeat_interval); return this.packetManager.handle(packet); } diff --git a/src/client/websocket/packets/WebSocketPacketManager.js b/src/client/websocket/packets/WebSocketPacketManager.js index 0c2b025cc..4edf566f2 100644 --- a/src/client/websocket/packets/WebSocketPacketManager.js +++ b/src/client/websocket/packets/WebSocketPacketManager.js @@ -77,6 +77,8 @@ class WebSocketPacketManager { return false; } + if (packet.op === Constants.OPCodes.HEARTBEAT_ACK) this.ws.client.emit('debug', 'HEARTBEAT ACK'); + if (this.ws.status === Constants.Status.RECONNECTING) { this.ws.reconnecting = false; this.ws.checkIfReady(); diff --git a/src/util/Constants.js b/src/util/Constants.js index f816d84b4..91486f935 100644 --- a/src/util/Constants.js +++ b/src/util/Constants.js @@ -140,6 +140,8 @@ exports.OPCodes = { RECONNECT: 7, REQUEST_GUILD_MEMBERS: 8, INVALID_SESSION: 9, + HELLO: 10, + HEARTBEAT_ACK: 11, }; exports.VoiceOPCodes = {