summary refs log tree commit diff
path: root/webrtc/src/util/Heartbeat.ts
blob: 7b5ed9cd41b8062f933c15ed9ce5f9affda9aa03 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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,
		}
	}));
}