From 00da44a120fb0eeb2bdc3a03670836a544dc5418 Mon Sep 17 00:00:00 2001 From: DD Date: Fri, 5 May 2023 23:14:53 +0300 Subject: [PATCH] fix(WebSocketShard): wait a little before reconnecting (#9517) * fix(WebSocketShard): wait a little before reconnecting * chore: leftover comment --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- packages/ws/__tests__/ws/WebSocketManager.test.ts | 1 - packages/ws/src/ws/WebSocketShard.ts | 3 +++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/ws/__tests__/ws/WebSocketManager.test.ts b/packages/ws/__tests__/ws/WebSocketManager.test.ts index 2f4e33fa6..877e339ca 100644 --- a/packages/ws/__tests__/ws/WebSocketManager.test.ts +++ b/packages/ws/__tests__/ws/WebSocketManager.test.ts @@ -229,7 +229,6 @@ test('strategies', async () => { await manager.destroy(destroyOptions); expect(strategy.destroy).toHaveBeenCalledWith(destroyOptions); - // eslint-disable-next-line id-length const send: GatewaySendPayload = { op: GatewayOpcodes.RequestGuildMembers, // eslint-disable-next-line id-length diff --git a/packages/ws/src/ws/WebSocketShard.ts b/packages/ws/src/ws/WebSocketShard.ts index 435c9a97c..b0c67a02f 100644 --- a/packages/ws/src/ws/WebSocketShard.ts +++ b/packages/ws/src/ws/WebSocketShard.ts @@ -259,6 +259,9 @@ export class WebSocketShard extends AsyncEventEmitter { this.#status = WebSocketShardStatus.Idle; if (options.recover !== undefined) { + // There's cases (like no internet connection) where we immediately fail to connect, + // causing a very fast and draining reconnection loop. + await sleep(500); return this.internalConnect(); } }