我有一個socket.io服務器在我的應用程序,監聽端口5759Socket.io - 關閉服務器
在我的代碼中的一些問題,我需要關閉服務器所以它不是聆聽了。
我該如何做到這一點?
Socket.io不在HTTP服務器上偵聽。
我有一個socket.io服務器在我的應用程序,監聽端口5759Socket.io - 關閉服務器
在我的代碼中的一些問題,我需要關閉服務器所以它不是聆聽了。
我該如何做到這一點?
Socket.io不在HTTP服務器上偵聽。
你有一臺服務器:
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();
});
邏輯從這裏撿到:How do I shutdown a Node.js http(s) server immediately?
的API已經改變。要停止接收傳入的連接,你應該運行:
io.httpServer.close();
這個API已在socket.io v1.1.x 又變了,現在是:
io.close()
使用'io.close()'來停止接收傳入的連接。 API已更新〜2015年第二季度 –
'io.close()'雖然不關閉現有連接 – rocketspacer