请考虑以下事项:
//client side:
var socket = io('http://localhost');
//disconnecting client side 5 seconds after connecting
setTimeout(function(){
socket.disconnect();
},5000);
//Server side:
var io = ......
io.on('connection', function (socket) {
setInterval(function(){
console.log(socket.id);//this will continue outputting the socket.id forever.
},1000);
});
现在我的问题是我将如何与服务器/客户端断开连接,因为单独的客户端方法似乎不起作用。
感谢。
答案 0 :(得分:1)
至于你的实际问题:无需做任何事情,客户端与服务器断开连接。但是,您遇到的问题不是客户端没有断开连接,而是您创建了一个间隔。在JavaScript中,setInterval回调将继续运行,直到您告诉它停止。
因此,解决方案是告诉它在客户端断开连接时停止:
//Server side:
var io = ......
io.on('connection', function (socket) {
var intervalId = setInterval(function(){
console.log(socket.id); //this will continue outputting the socket.id until clearInterval() is called
},1000);
socket.on('disconnect', function() {
clearInterval(intervalId);
});
});