客户端断开连接后,Socket.io内存不会丢失

时间:2013-07-19 17:00:09

标签: node.js socket.io

var server = require('socket.io').listen(1781);
server.set('log level', 1);

setInterval(function() {
    console.log(process.memoryUsage());
}, 60000);

我的Socket.io 0.9.16和Node 0.10.12 / 0.10.13应用程序中存在内存泄漏。 连接一些客户端后,RSS内存增加,但在断开连接后,内存不会下降。我将我的应用程序剥离到上面的代码,以排除我的任何错误。 连接1000个客户端后,该过程需要65MB(最初花费约15MB),在断开所有客户端后,内存保持高电平。有什么帮助吗?

我读到的所有文章/答案都是关于node或socket.io的早期版本。我迫切希望找到解决方案。

2 个答案:

答案 0 :(得分:0)

我在socket.io上遇到过类似的问题。似乎客户端连接后,它永远不会从socket.io中删除。

您可以调试SocketIoServer.sockets.sockets的值。它是一个包含所有连接(和断开连接的套接字)的数组。也许那就是你的记忆泄漏所在。

另外,我刚看到socket.io发布了1.0版本。您可以尝试一下,看看它是否解决了这个问题。

答案 1 :(得分:0)

我使用nodetime来跟踪内存使用情况,看起来它有内存泄漏。放弃节点时间后,内存消耗稳定。