fix heartbeats once and for all (#1016)

This commit is contained in:
Gus Caplan
2016-12-25 10:28:36 -06:00
committed by Amish Shah
parent fb6a8d1637
commit 2410fdf8d2
6 changed files with 25 additions and 18 deletions

View File

@@ -48,22 +48,7 @@ class ClientManager {
* @param {number} time The interval in milliseconds at which heartbeat packets should be sent
*/
setupKeepAlive(time) {
this.heartbeatInterval = this.client.setInterval(this.ping.bind(this), time);
}
ping() {
this.client.emit('debug', 'Sending heartbeat');
this.client._pingTimestamp = Date.now();
this.client.ws.send({
op: Constants.OPCodes.HEARTBEAT,
d: this.client.ws.sequence,
}, true);
const lastPing = this.client.ping;
this.client._ackTimeout = this.client.setTimeout(() => {
this.client.ws.ws.close(1005);
}, lastPing ? lastPing * 20 : 20e3);
this.heartbeatInterval = this.client.setInterval(() => this.client.ws.heartbeat(true), time);
}
destroy() {