From a2b2c7960584783fd0322879e44f00a4abb9d48c Mon Sep 17 00:00:00 2001 From: Skillz Date: Sun, 9 Feb 2020 14:20:39 -0500 Subject: [PATCH] update sequence number and keep gateway alive --- module/Client.ts | 6 +++++- module/websocket.ts | 12 +++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/module/Client.ts b/module/Client.ts index 6a60512a7..e902d4f6f 100644 --- a/module/Client.ts +++ b/module/Client.ts @@ -13,7 +13,7 @@ import { // import { BufReader } from "https://deno.land/std/io/bufio.ts" // import { TextProtoReader } from "https://deno.land/std/textproto/mod.ts" import { blue, green, red, yellow } from "https://deno.land/std/fmt/colors.ts" -import { keepDiscordWebsocketAlive } from "./websocket.ts"; +import { keepDiscordWebsocketAlive, updatePreviousSequenceNumber } from "./websocket.ts"; class Client { /** The bot's token. This should never be used by end users. It is meant to be used internally to make requests to the Discord API. */ @@ -65,6 +65,10 @@ class Client { switch (data.op) { case 10: // Initial Heartbeat keepDiscordWebsocketAlive(socket, (data.d as DiscordHeartbeatPayload).heartbeat_interval, data.s) + break + case 11: + updatePreviousSequenceNumber(data.s) + break } } diff --git a/module/websocket.ts b/module/websocket.ts index c1fa463a2..b35855f07 100644 --- a/module/websocket.ts +++ b/module/websocket.ts @@ -1,15 +1,17 @@ import { WebSocket } from "https://deno.land/std/ws/mod.ts"; -export const keepDiscordWebsocketAlive = (socket: WebSocket, millesecondsInterval: number, payload: number | null = null) => { - let previousSequenceNumber = payload +let previousSequenceNumber: number | null = null +export const keepDiscordWebsocketAlive = (socket: WebSocket, millesecondsInterval: number, payload: number | null = null) => { setInterval(() => { - const response = await socket.send(JSON.stringify({ + socket.send(JSON.stringify({ op: 1, d: previousSequenceNumber })) - console.log(response) - }, millesecondsInterval) } + +export const updatePreviousSequenceNumber = (sequence: number | null = null) => { + previousSequenceNumber = sequence +}