import type { RoomControl } from "~/lib/editor-protocol";
export function sendControl(socket: WebSocket, message: RoomControl): void {
try {
socket.send(JSON.stringify(message));
} catch {
socket.close();
}
}
export function broadcastControl(sockets: WebSocket[], message: RoomControl): void {
const payload = JSON.stringify(message);
for (const socket of sockets) {
try {
socket.send(payload);
} catch {
continue;
}
}
}
export function broadcastFrame(sockets: WebSocket[], frame: Uint8Array, except: WebSocket | null): void {
for (const socket of sockets) {
if (socket === except || socket.readyState !== WebSocket.OPEN) continue;
try {
socket.send(frame);
} catch {
continue;
}
}
}