Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

src: Fix resume event not being emitted properly #3192

Merged
merged 6 commits into from Apr 21, 2019
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
9 changes: 0 additions & 9 deletions src/client/websocket/WebSocketManager.js
Expand Up @@ -194,15 +194,6 @@ class WebSocketManager {
if (!this.shardQueue.size) this.reconnecting = false;
});

shard.on(ShardEvents.RESUMED, () => {
/**
* Emitted when a shard resumes successfully.
* @event Client#shardResumed
* @param {number} id The shard ID that resumed
*/
this.client.emit(Events.SHARD_RESUMED, shard.id);
});

shard.on(ShardEvents.CLOSE, event => {
if (event.code === 1000 ? this.destroyed : UNRECOVERABLE_CLOSE_CODES.includes(event.code)) {
/**
Expand Down
4 changes: 2 additions & 2 deletions src/client/websocket/WebSocketShard.js
Expand Up @@ -266,10 +266,10 @@ class WebSocketShard extends EventEmitter {

/**
* Called whenever an error occurs with the WebSocket.
* @param {ErrorEvent} error The error that occurred
vladfrangu marked this conversation as resolved.
Show resolved Hide resolved
* @param {Error} error The error that occurred
* @private
*/
onError({ error }) {
onError(error) {
if (error && error.message === 'uWs client connection error') {
this.debug('Received a uWs error. Closing the connection and reconnecting...');
this.connection.close(4000);
Expand Down
10 changes: 5 additions & 5 deletions src/client/websocket/handlers/RESUMED.js
Expand Up @@ -5,10 +5,10 @@ const { Events } = require('../../../util/Constants');
module.exports = (client, packet, shard) => {
const replayed = shard.sequence - shard.closeSequence;
/**
* Emitted when the client gateway resumes.
* @event Client#resume
* @param {number} replayed The number of events that were replayed
* @param {number} shardID The ID of the shard that resumed
* Emitted when a shard resumes successfully.
* @event Client#shardResumed
* @param {number} id The shard ID that resumed
* @param {number} replayedEvents The amount of replayed events
*/
client.emit(Events.RESUMED, replayed, shard.id);
client.emit(Events.SHARD_RESUMED, shard.id, replayed);
};
5 changes: 5 additions & 0 deletions src/sharding/ShardClientUtil.js
Expand Up @@ -181,6 +181,11 @@ class ShardClientUtil {
_respond(type, message) {
this.send(message).catch(err => {
err.message = `Error when sending ${type} response to master process: ${err.message}`;
/**
* Emitted when the client encounters an error.
* @event Client#error
* @param {Error} error The error encountered
*/
this.client.emit(Events.ERROR, err);
});
}
Expand Down
3 changes: 1 addition & 2 deletions typings/index.d.ts
Expand Up @@ -1335,7 +1335,7 @@ declare module 'discord.js' {
private connect(): Promise<void>;
private onOpen(): void;
private onMessage(event: MessageEvent): void;
private onError(error: ErrorEvent): void;
private onError(error: Error): void;
private onClose(event: CloseEvent): void;
private onPacket(packet: object): void;
private setHelloTimeout(time?: number): void;
Expand Down Expand Up @@ -2220,7 +2220,6 @@ declare module 'discord.js' {

type MessageEvent = { data: WebSocket.Data; type: string; target: WebSocket; };
type CloseEvent = { wasClean: boolean; code: number; reason: string; target: WebSocket; };
type ErrorEvent = { error: any, message: string, type: string, target: WebSocket; };

//#endregion
}