node.js socket.io这是一个内存泄漏?

时间:2012-01-12 00:22:41

标签: node.js socket.io

如果我有这样的代码:

io.sockets.on('connection', function (socket) {
    // setup listeners for this socket          
    setup_socket_events(socket);      
});

function setup_socket_events(socket)
{     
    socket.on('disconnect', function(){event_disconnect(socket);});         
}

function event_disconnect(socket)
{   
    console.log("disconnect");
}

当套接字断开连接时,这是内存泄漏吗?如果是,为什么以及如何阻止它?

更新: 尝试以下代码从assertvarnish

创建循环断言
var assertvanish = require('assertvanish');
io.sockets.on('connection', function (socket) {
    // setup listeners for this socket      
    setup_socket_events(socket);    
});

function setup_socket_events(socket)
{
    socket.on('disconnect', event_disconnect(socket) ); 
}
function event_disconnect(socket)
{

    return function() { 
    console.log("disconnect");
        // do something with socket
        assertvanish(socket, 5000);
    }
}

1 个答案:

答案 0 :(得分:0)

没有内存泄漏。你说你正在使用断言。我认为assertvanish(socket, 10000)只是说套接字在10秒后没有被删除,这没关系,因为你想让套接字永远保持活着,对吗?