Socket.io - 关闭服务器 [英] Socket.io - Close Server
本文介绍了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屋!
查看全文