は: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");
}
ソケット切断を、これはメモリリークで、もしそうなら、なぜ、あなたはそれを阻止する方法を教えてください
UPDATE:次のコードを試す は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);
}
}
具体的には、メモリリークについて不思議ですか? –
また、 'on'呼び出しは' io.sockets.on( 'connection'、setup_socket_events); 'とすることができます。仲介機能は必要ありません。 –
setup_socket_eventsにsocketを渡す必要はありませんか?私がメモリリークを心配している主要な理由は、私はどこか1つしか持っておらず、できるだけコードを単純化しているということです。 assertvanish(socket、10000)を使用します。 in event_disconnect私は循環的なメモリリークが表示されます。 – crickeys