diff --git a/src/gateway/util/Heartbeat.ts b/src/gateway/util/Heartbeat.ts
index 5beb7e99..6ec067cb 100644
--- a/src/gateway/util/Heartbeat.ts
+++ b/src/gateway/util/Heartbeat.ts
@@ -23,5 +23,5 @@ import { WebSocket } from "./WebSocket";
export function setHeartbeat(socket: WebSocket) {
if (socket.heartbeatTimeout) clearTimeout(socket.heartbeatTimeout);
- socket.heartbeatTimeout = setTimeout(() => socket.close(CLOSECODES.Session_timed_out), 1000 * 45);
+ socket.heartbeatTimeout = setTimeout(() => socket.rawSocket.close(CLOSECODES.Session_timed_out), 1000 * 45);
}
diff --git a/src/gateway/util/Send.ts b/src/gateway/util/Send.ts
index f857a400..60eda0e2 100644
--- a/src/gateway/util/Send.ts
+++ b/src/gateway/util/Send.ts
@@ -69,13 +69,13 @@ export async function Send(socket: WebSocket, data: Payload) {
}
return new Promise((res, rej) => {
- if (socket.readyState !== 1) {
+ if (socket.rawSocket.readyState !== 1) {
// return rej("socket not open");
- socket.close();
+ socket.rawSocket.close();
return;
}
- socket.send(buffer, (err) => {
+ socket.rawSocket.send(buffer, (err) => {
if (err) return rej(err);
return res(null);
});
diff --git a/src/gateway/util/WebSocket.ts b/src/gateway/util/WebSocket.ts
index 50c7bbb1..cf912ddf 100644
--- a/src/gateway/util/WebSocket.ts
+++ b/src/gateway/util/WebSocket.ts
@@ -24,8 +24,13 @@ import { Intents, ListenEventOpts, Permissions } from "@spacebar/util";
import { QoSPayload } from "../opcodes/Heartbeat";
import { Capabilities } from "./Capabilities";
-export interface WebSocket extends WS {
- recentTransactions: string[];
+export class WebSocket {
+ rawSocket: WS;
+ constructor(socket: WS) {
+ this.rawSocket = socket;
+ }
+
+ recentTransactions: string[] = [];
version: number;
user_id: string;
session_id: string;
@@ -44,10 +49,10 @@ export interface WebSocket extends WS {
heartbeatTimeout: NodeJS.Timeout;
readyTimeout: NodeJS.Timeout;
intents: Intents;
- sequence: number;
- permissions: Record<string, Permissions>;
- events: Record<string, undefined | (() => Promise<unknown>)>;
- member_events: Record<string, () => Promise<unknown>>;
+ sequence: number = 0;
+ permissions: Record<string, Permissions> = {};
+ events: Record<string, undefined | (() => Promise<unknown>)> = {};
+ member_events: Record<string, () => Promise<unknown>> = {};
listen_options: ListenEventOpts;
capabilities?: Capabilities;
large_threshold: number;
|