| 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)); |
| } |
|
|