rentgendroid/android/code/notifications.mjs
Andrii Dokhniak bd51549d08 fixup
2025-04-18 11:58:50 +02:00

43 lines
977 B
JavaScript

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"
);
}
}
}
notification_subs = updated_subs;
}