feat(ws/shard): add closeWS() function (#543)

* feat(ws/shard): add closeWS() function

* foolproof reason lol

* feat(ws/shard): handle 3069 close code

* be less verbose 😂
This commit is contained in:
ayntee
2021-02-25 22:12:22 +04:00
committed by GitHub
parent f98c48beed
commit a6ba23553b
+13
View File
@@ -163,6 +163,8 @@ export function createShard(
data: { shardID: basicShard.id, code, reason, wasClean }, data: { shardID: basicShard.id, code, reason, wasClean },
}); });
createShard(data, identifyPayload, false, shardID); createShard(data, identifyPayload, false, shardID);
} else if (code === 3069 && reason === "[discordeno] requested closure") {
return;
} else { } else {
basicShard.needToResume = true; basicShard.needToResume = true;
await resumeConnection(botGatewayData, identifyPayload, shardID); await resumeConnection(botGatewayData, identifyPayload, shardID);
@@ -407,5 +409,16 @@ export function sendWS(payload: DiscordPayload, shardID = 0) {
const serialized = JSON.stringify(payload); const serialized = JSON.stringify(payload);
shard.ws.send(serialized); shard.ws.send(serialized);
return true;
}
/** Closes the WebSocket connection or connection attempt */
export function closeWS(shardID = 0) {
const shard = basicShards.get(shardID);
if (!shard) return false;
shard.ws.close(3069, "[discordeno] requested closure");
return true; return true;
} }