Socket.io – closures服务器

我的应用程序中有一个socket.io服务器,在端口5759上进行侦听。

在我的代码中的某个时刻,我需要closures服务器,因此它不是在监听任何东西

我怎样才能做到这一点?

Socket.io不在HTTP服务器上侦听。

       

网上收集的解决方案 "Socket.io – closures服务器"

你有一台服务器:

var io = require('socket.io').listen(8000); io.sockets.on('connection', function(socket) { socket.emit('socket_is_connected','You are connected!'); }); 

停止接收传入的连接

 io.server.close(); 

注意:这将不会closures现有的连接,它们将在closures之前等待超时。 要立即closures它们,首先制作一个连接sockets的列表

 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); }); }); 

然后closures所有现有的连接

 socketlist.forEach(function(socket) { socket.destroy(); }); 

从这里拾起逻辑: 我如何立即closuresNode.js http服务器?

这个api在socket.io v1.1.x中已经改变了,现在是:

 io.close() 

API已经改变。 要停止接收传入连接,您应该运行:

 io.httpServer.close();