import { WebSocket } from "ws"; import { WebSocketServer } from "ws"; const notification_proxy = new WebSocketServer({ port: 3001 }); let notification_subs = []; notification_proxy.on('connection', (ws) => { notification_subs.push(ws); }); export function send_notification(is_ok, context, message) { let updated_subs = []; if (notification_subs.length === 0) { console.log("WARNING: Got a notification, but nobody is subscribed"); } for (const sub of notification_subs) { if (sub.readyState == WebSocket.CONNECTING) { console.log("WARNING: Unable to forward a notification to client that is still connecting"); updated_subs.push(sub); } else { try { sub.send(JSON.stringify({ is_ok, context, message })); updated_subs.push(sub); } catch { sub.close(); console.log("WARNING: Fail to send a notification, closing the connection"); } } } }