卫星通信服务平台
This commit is contained in:
47
app/middleware/webSocket/webSocketServer.js
Normal file
47
app/middleware/webSocket/webSocketServer.js
Normal file
@@ -0,0 +1,47 @@
|
||||
// webSocket服务端
|
||||
const http = require('http');
|
||||
const { Server } = require('socket.io');
|
||||
|
||||
module.exports = (app) => {
|
||||
// 创建HTTP服务器并监听8110端口
|
||||
const server = http.createServer(function (req, res) {
|
||||
if (req.url === '/') {
|
||||
res.writeHead(200, {'Content-Type': 'text/plain'});
|
||||
res.end('Hello World!');
|
||||
}
|
||||
}).listen(app.config.webSocketServer.port);
|
||||
|
||||
let io = new Server(server, {
|
||||
cors: {
|
||||
origin: app.config.webSocketServer.allowedOrigins, // 生产环境应指定具体域名
|
||||
methods: ["GET", "POST"]
|
||||
},
|
||||
// path: app.config.webSocketServer.path,
|
||||
transports: ['websocket', 'polling'],
|
||||
connectionStateRecovery: {}
|
||||
});
|
||||
|
||||
console.log(`websocket: ${ app.config.webSocketServer.ip }服务器已启动,监听端口:${ app.config.webSocketServer.port }`);
|
||||
|
||||
const socketEmitter = app.middleware.shunt.socketEmitter();
|
||||
const utils = app.middleware.utils;
|
||||
|
||||
io.on('connection', (socket) => {
|
||||
socket.on('message', (snNumber) => {
|
||||
if(socketEmitter.listeners(snNumber).length !== 0) {
|
||||
socketEmitter.removeAllListeners(snNumber);
|
||||
};
|
||||
socketEmitter.on(snNumber, (msg) => {
|
||||
socket.emit(snNumber, msg);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
io.on('error', (err) => {
|
||||
utils.log('../../webSocketLog', err);
|
||||
io = new Server(app.config.webSocketServer.port, {
|
||||
cors: true,
|
||||
connectionStateRecovery: {}
|
||||
});
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user