1

我正在使用 socket.io,我想知道在连接关闭后如何删除客户端(套接字)。(其实我也不知道一个连接关闭后是怎么回事,那个socket会一直留在那里吗?要不要去掉?会不会占内存?)

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");
    });
})

发生的情况是,例如,我与服务器断开连接,我发现服务器仍在记录。我该怎么做才能阻止它?

谢谢~

4

1 回答 1

2

在上面的代码中,它setInterval导致了额外的日志记录。

您将需要存储从返回的 id,然后在断开连接事件时将setInterval其清除。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);
    });
})

除此之外,不需要对服务器端的套接字做任何其他事情。它会在某个时候收集垃圾。

于 2013-09-13T22:59:01.777 回答