如果我有这样的代码:
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");
}当套接字断开时,这是内存泄漏吗?如果是,为什么以及如何阻止它?
UPDATE:尝试下面的代码可以从断言中创建一个循环断言
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);
}
}发布于 2012-01-12 00:27:42
没有内存泄漏。你是在说你在使用断言。我认为assertvanish(socket, 10000)只是说在10s之后不会删除套接字,这是可以的,因为你想让你的套接字永远活下去,对吗?
https://stackoverflow.com/questions/8828623
复制相似问题