|
|
import express from "express"; import { Server } from "ws"; import http from "http"; import bodyParser from "body-parser"; import morgan from "morgan";
import cmdRouter from "./routes/cmd"; import debugRouter from "./routes/debug"; import authRouter from "./routes/auth"; import measureRouter from "./routes/measure"; import measureAnalysisRouter from "./routes/measureAnalysis"; import measureDataRouter from "./routes/measureData";
// import { defaultStatus, StatusDatagram } from "./types/wsTypes";
import { wsSend } from "./utils/wss"; import { ContextMessage, defaultContext, defaultMeasureState } from "./types/wsTypes";
const app = express(); app.use(express.static("public")); app.use(bodyParser.urlencoded()); app.use(bodyParser.json()); app.use(morgan("dev"));
const server = http.createServer(app); // 在HTTP服务器上初始化WebSocket服务器
const wss = new Server({ server });
wss.on("connection", ws => { console.log("Client connected"); // ws.send("Welcome to the WebSocket server!");
// ws.on("message", message => {
// console.log(`Received message: ${message}`);
// wss.clients.forEach(client => {
// if (client.readyState === ws.OPEN) {
// client.send(message.toString());
// }
// });
// });
// DeviceContext
ws.send( JSON.stringify({ messageType: "DeviceContext", data: app.locals["context"], path: "/deviceContext", }) ); // MeasureState
ws.send( JSON.stringify({ messageType: "EVENT", data: app.locals["measure"], path: "/measurement-task/get-task-state", }) ); ws.on("close", () => { console.log("Client disconnected"); }); });
app.locals["wss"] = wss; app.locals["context"] = defaultContext; app.locals["measure"] = defaultMeasureState;
// app.get("/", (req, res) => {
// res.send("Hello World!");
// });
app.use("/api/debug", debugRouter); app.use("/api/cmd", cmdRouter); app.use("/api/auth", authRouter); app.use("/api/measurement-analysis", measureAnalysisRouter); app.use("/api/measurement-task", measureRouter); app.use("/api/measurement-data", measureDataRouter); //@ts-ignore
app.use((err, req, res, next) => { console.error(err.stack); res.status(500).send("Something broke!"); });
// 监听端口
const PORT = process.env.PORT || 8080; server.listen(PORT, () => { console.log(`Server is listening on port ${PORT}`); });
|