From 4060dbee2ba63d525ce34b14702bb24dcfd752e3 Mon Sep 17 00:00:00 2001 From: Skillz Date: Wed, 14 Oct 2020 21:17:15 -0400 Subject: [PATCH] small fixes --- src/module/basicShard.ts | 19 ++++++++++++++++--- src/types/options.ts | 1 + 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/module/basicShard.ts b/src/module/basicShard.ts index 84d4f9c9f..ea7de1acd 100644 --- a/src/module/basicShard.ts +++ b/src/module/basicShard.ts @@ -211,14 +211,27 @@ async function heartbeat( return; } - if (!heartbeating.has(shard.id)) heartbeating.set(shard.id, false); - else { + if (heartbeating.has(shard.id)) { const receivedACK = heartbeating.get(shard.id); + // If a ACK response was not received since last heartbeat, issue invalid session close if (!receivedACK) { - shard.socket.send(JSON.stringify({ op: 4009 })); + eventHandlers.debug?.( + { + type: "heartbeatStopped", + data: { + interval, + previousSequenceNumber: shard.previousSequenceNumber, + shardID: shard.id, + }, + }, + ); + return shard.socket.send(JSON.stringify({ op: 4009 })); } } + // Set it to false as we are issuing a new heartbeat + heartbeating.set(shard.id, false); + shard.socket.send( JSON.stringify( { op: GatewayOpcode.Heartbeat, d: shard.previousSequenceNumber }, diff --git a/src/types/options.ts b/src/types/options.ts index 4b57be9f4..641432ada 100644 --- a/src/types/options.ts +++ b/src/types/options.ts @@ -64,6 +64,7 @@ export interface DebugArg { | "requestManagerFetched" | "requestMembersProcessing" | "heartbeat" + | "heartbeatStopped" | "createShard" | "invalidSession" | "reconnect"