Socket.io - 关闭服务器 [英] Socket.io - Close Server

查看:50
本文介绍了Socket.io - 关闭服务器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的应用中有一个 socket.io 服务器,监听端口 5759.

I have a socket.io server in my app, listening on port 5759.

在我的代码中的某个时刻,我需要关闭服务器这样它就不再听了.

At some point in my code I need to shutdown the server SO IT IS NOT LISTENING ANYMORE.

我怎样才能做到这一点?

How Can I accomplish this?

Socket.io 未在 http 服务器上侦听.

Socket.io is not listening on an http server.

推荐答案

你有一台服务器 :

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

停止接收传入连接

io.server.close();

注意:这不会关闭现有连接,这将在关闭之前等待超时.要立即关闭它们,首先要列出已连接的套接字

NOTE: This will not close existing connections, which will wait for timeout before they are closed. To close them immediately , first make a list of connected 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);
    });
});

然后关闭所有现有连接

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

从这里获取的逻辑:我该怎么做立即关闭 Node.js http(s) 服务器?

这篇关于Socket.io - 关闭服务器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆