使用socket.io内存泄漏
Memory leaks using socket.io
我发现在手动断开套接字连接时,套接字在套接字io服务器端并没有完全销毁。我发现github上的这个主题很有用。当我在寻找一些阻止GC清理套接字的可变链接时,我在这里提出了一个问题。
如果这里有人遇到同样的问题,这将是很大的帮助。
不起作用的代码:
socket.on('disconnect', function(){
socket.removeAllListeners();
});
///...................
socket.disconnect();
然而,解决方法使用了受限的库字段:
delete io.sockets[url];
io.j = [];
实际上,这是按预期工作的,当您断开一个套接字时,您只需声明您现在不希望从该套接字接收更多数据,就可以实际销毁套接字,您基本上是执行delete socket
操作。在断开连接事件中使用此选项,即:
socket.on('disconnect', function(){
delete socket;
})
您也可以在外部函数的io.sockets.sockets对象上执行此操作:
function deleteSocket(socketID){
delete io.sockets.sockets[socketID];
}
相关文章:
- 重复应用 d3 转换导致的内存泄漏
- IE7中的blockUI插件内存泄漏25kb
- Javascript闭包-如何防止内存泄漏
- jQuery Draggable:内存泄漏
- "检测到可能的EventEmitter内存泄漏”;使用Gulp+Watchify+Factor捆绑包
- 在Dojo类中递归调用setTimeout时是否存在内存泄漏
- 是内存泄漏
- 将处理程序留在img.onload上是内存泄漏
- 具有并发sse连接的node.js内存泄漏
- 简单对象的Javascript内存泄漏
- WeakMap是否会将我从父/子关系的内存泄漏中拯救出来
- Javascript绘制画布内存泄漏
- 为什么我的svg节点在IE中泄漏内存
- AngularJS指令包装器与Kendo一起泄漏内存
- 经过几次清理尝试后,主干仍在泄漏内存
- 这个js代码如何泄漏内存
- 未处理的postMessage是否泄漏内存
- 动态创建和销毁三.js场景,而不会泄漏内存
- 我的PyV8上下文泄漏内存
- 为什么我的数字时钟功能泄漏内存