feat: implement gateway queue (#844)

* feat: implement gateway queue

* process queues when adding to queue

* fix: tests fixed ready for review

* handle shard closed

Co-authored-by: Skillz4Killz <Skillz4Killz@users.noreply.github.com>
This commit is contained in:
Skillz4Killz
2021-04-13 12:29:35 -04:00
committed by GitHub
parent 16a5ac684a
commit 72618947f0
6 changed files with 90 additions and 37 deletions
+12 -10
View File
@@ -38,19 +38,21 @@ export async function resume(shardId: number) {
interval: 0,
intervalId: 0,
},
queue: oldShard?.queue || [],
processingQueue: false,
});
// Resume on open
socket.onopen = () => {
socket.send(
JSON.stringify({
op: DiscordGatewayOpcodes.Resume,
d: {
token: ws.identifyPayload.token,
session_id: sessionId,
seq: previousSequenceNumber,
},
}),
);
ws.shards.get(shardId)?.queue.unshift({
op: DiscordGatewayOpcodes.Resume,
d: {
token: ws.identifyPayload.token,
session_id: sessionId,
seq: previousSequenceNumber,
},
});
ws.processQueue(shardId);
};
}