我的应用中有一个 socket.io 服务器,监听端口 5759。
在我的代码中的某个时刻,我需要关闭服务器所以它不再在听了。
我怎样才能做到这一点?
Socket.io 没有监听 http 服务器。
最佳答案
你有一个服务器:
var io = require('socket.io').listen(8000);
io.sockets.on('connection', function(socket) {
socket.emit('socket_is_connected','You are connected!');
});
停止接收传入连接
io.server.close();
注意:这不会关闭现有连接,它们会在关闭之前等待超时。要立即关闭它们,首先列出已连接的套接字
var socketlist = [];
io.sockets.on('connection', function(socket) {
socketlist.push(socket);
socket.emit('socket_is_connected','You are connected!');
socket.on('close', function () {
console.log('socket closed');
socketlist.splice(socketlist.indexOf(socket), 1);
});
});
然后关闭所有现有的连接
socketlist.forEach(function(socket) {
socket.destroy();
});
从这里获取逻辑:How do I shutdown a Node.js http(s) server immediately?
关于node.js - Socket.io - 关闭服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16000120/