import { WebSocketServer } from "ws"; import { verifyToken } from "./lib/jwt"; import { createTerminalSession } from "./lib/terminal"; import { createVNCSession } from "./lib/vnc"; const createWsServer = (server: any) => { const wss = new WebSocketServer({ server: server as never }); wss.on("connection", async (ws, req) => { const url = new URL(req.url || "", `http://${req.headers.host}`); const token = url.searchParams.get("token"); try { await verifyToken(token || ""); } catch (err) { // console.log(err); ws.close(); return; } if (url.pathname === "/terminal") { createTerminalSession(ws); } if (url.pathname === "/vnc") { createVNCSession(ws); } ws.on("error", console.error); }); }; export default createWsServer;