Socket.io - 关闭服务器(Socket.io - Close Server)

2019-08-23 00:28发布

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

在我的代码中某些时候,我需要关闭,所以它不是会听了服务器。

我怎样才能做到这一点?

Socket.io就是不听HTTP服务器上。

Answer 1:

你有一台服务器:

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

要停止recieving传入的连接

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

逻辑从这里捡到: 如何做立即关闭我一个Node.js的HTTP(S)服务器?



Answer 2:

这个API已在socket.io v1.1.x又变了,现在是:

io.close()


Answer 3:

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

io.httpServer.close();


文章来源: Socket.io - Close Server