var server = require("http").createServer(); module.exports = class WebSocketServer { constructor() { this._pageMap = new Map(); this._userIDs = new Map(); this._roomIDS = new Map(); this._users = []; } create() { this.io = require("socket.io")(server, { path: "/test", serveClient: false, // below are engine.IO options pingInterval: 10000, pingTimeout: 5000, cookie: false, }); server.listen(3000, { origins: "*" }); this.io.on("connection", (socket) => { let user = socket.handshake.query this._users.push(user) this._userIDs.set(user['agentId'], user['agentId']); socket.join(user['roomId'], () => { this._roomIDS.set(user['roomId'], user['roomId']); this.io.to(user['roomId']).emit('vr_request', { userInfo: user }); }); socket.on("getJson", (data) => { let roomId = this._roomIDS.get(data.roomId); if (roomId) { this.io.to(roomId).emit("action", data.content.action); this.io.to(roomId).emit("vr_response", data); } }); console.log("WebSocket服务端建立完毕"); socket.on("disconnect", function (reason) { console.log("关闭连接", reason); }); socket.on("error", function (reason) { console.log("异常关闭", reason) }); return this; }); } close() { this.server.disconnect(true); } };