mirror of
https://github.com/danbulant/discord.js
synced 2026-06-09 01:31:29 +00:00
Let client know who closed the WebSocket
This commit is contained in:
parent
2ace21c412
commit
51a2e465bd
1 changed files with 10 additions and 1 deletions
|
|
@ -97,6 +97,12 @@ class WebSocketConnection extends EventEmitter {
|
||||||
* @type {number}
|
* @type {number}
|
||||||
*/
|
*/
|
||||||
this.closeSequence = 0;
|
this.closeSequence = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether or not the WebSocket is expecting to be closed
|
||||||
|
* @type {boolean}
|
||||||
|
*/
|
||||||
|
this.expectingClose = false;
|
||||||
for (const event of this.client.options.disabledEvents) this.disabledEvents[event] = true;
|
for (const event of this.client.options.disabledEvents) this.disabledEvents[event] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -236,6 +242,7 @@ class WebSocketConnection extends EventEmitter {
|
||||||
this.debug(`Tried to connect to an invalid gateway: ${gateway}`);
|
this.debug(`Tried to connect to an invalid gateway: ${gateway}`);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
this.expectingClose = false;
|
||||||
this.gateway = gateway;
|
this.gateway = gateway;
|
||||||
this.debug(`Connecting to ${gateway}`);
|
this.debug(`Connecting to ${gateway}`);
|
||||||
const ws = this.ws = new WebSocket(gateway);
|
const ws = this.ws = new WebSocket(gateway);
|
||||||
|
|
@ -259,6 +266,7 @@ class WebSocketConnection extends EventEmitter {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
this.heartbeat(-1);
|
this.heartbeat(-1);
|
||||||
|
this.expectingClose = true;
|
||||||
ws.close(1000);
|
ws.close(1000);
|
||||||
this.packetManager.handleQueue();
|
this.packetManager.handleQueue();
|
||||||
this.ws = null;
|
this.ws = null;
|
||||||
|
|
@ -360,7 +368,8 @@ class WebSocketConnection extends EventEmitter {
|
||||||
* @param {CloseEvent} event Close event that was received
|
* @param {CloseEvent} event Close event that was received
|
||||||
*/
|
*/
|
||||||
onClose(event) {
|
onClose(event) {
|
||||||
this.debug(`Closed: ${event.code}`);
|
this.debug(`${this.expectingClose ? 'Server' : 'Client'} closed WebSocket connection: ${event.code}`);
|
||||||
|
this.expectingClose = false;
|
||||||
this.closeSequence = this.sequence;
|
this.closeSequence = this.sequence;
|
||||||
// Reset the state before trying to fix anything
|
// Reset the state before trying to fix anything
|
||||||
this.emit('close', event);
|
this.emit('close', event);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue