import { createServer } from "node:http"; import next from "next"; import { Server } from "socket.io"; import { fork } from "node:child_process"; const dev = process.env.NODE_ENV !== "production"; const hostname = "0.0.0.0"; const port = 22110; // when using middleware `hostname` and `port` must be provided below const app = next({ dev, hostname, port }); const handler = app.getRequestHandler(); app.prepare().then(() => { const httpServer = createServer(handler); const io = new Server(httpServer); const forked = fork("./scanner.js"); io.on("connection", (socket) => { console.log("[server][WebSocket]已连接"); socket.emit("msg", "connected"); // io.emit("msg", "io.emit"); forked.send("start"); socket.on("disconnect", () => { console.log("[server][WebSocket]已断开连接"); forked.send("stop"); }); }); // socket_global.emit("msg","socket_global") httpServer .once("error", (err) => { console.error(err); process.exit(1); }) .listen(port, () => { console.log(`[server][服务器]已启用于 http://${hostname}:${port}`); }); forked.on("message", (msg) => { console.log("[server][子进程]]收到数据", msg); io.emit("msg", msg); }); // });