我正在使用socket.io,我想知道如何在关闭连接后删除客户端(套接字)。 (事实上,我不知道连接关闭后发生了什么,那个套接字是否会保留在那里?我应该将其删除吗?它会占用内存吗?)
My code:
socket.No = socketNo++;
io.sockets.on("connection",function(socket){
setInterval(function(){
console.log("Server calling update collection with socket No.",socket.No);
},3000);
//When connection is close()
socket.on("disconnect",function(){
console.log("A user disconnected");
});
})
例如,我断开与服务器的连接,发现服务器仍在记录。我该怎么办才能阻止它呢?
感谢〜
答案 0 :(得分:1)
在上面的代码中,导致额外记录的是setInterval
。
您需要存储从setInterval
返回的ID,然后在断开连接事件上使用clearInterval
清除它。
类似的东西:
io.sockets.on("connection",function(socket){
var intervalId = setInterval(function(){
console.log("Server calling update collection with socket No.",socket.No);
},3000);
//When connection is close()
socket.on("disconnect",function(){
console.log("A user disconnected");
clearInterval(intervalId);
});
})
除此之外,无需对服务器端的套接字执行任何其他操作。它会在某些时候收集垃圾。