spacebar/webrtc/src/util/Heartbeat.ts
2022-01-16 02:38:43 +11:00

18 lines
470 B
TypeScript

import { WebSocket, CLOSECODES } from "@fosscord/gateway";
import { VoiceOPCodes } from "@fosscord/util";
export async function setHeartbeat(socket: WebSocket) {
if (socket.heartbeatTimeout) clearTimeout(socket.heartbeatTimeout);
socket.heartbeatTimeout = setTimeout(() => {
return socket.close(CLOSECODES.Session_timed_out);
}, 1000 * 45);
socket.send(JSON.stringify({
op: VoiceOPCodes.HEARTBEAT_ACK,
d: {
v: 6,
heartbeat_interval: 13750,
}
}));
}