trsstapi / src /ws /adminWs.js
Twan07's picture
Create src/ws/adminWs.js
9e9075b verified
import { WebSocketServer } from "ws";
import jwt from "jsonwebtoken";
const clients = new Set();
export function initAdminWS(server) {
const wss = new WebSocketServer({ server, path: "/ws/admin" });
wss.on("connection", (ws, req) => {
const token = new URL(req.url, "http://x").searchParams.get("token");
try {
jwt.verify(token, process.env.JWT_SECRET);
clients.add(ws);
} catch {
ws.close();
}
ws.on("close", () => clients.delete(ws));
});
}
export function emitAdminAlert(data) {
const msg = JSON.stringify(data);
clients.forEach((ws) => ws.send(msg));
}