gpt4 book ai didi

javascript - 使用 socket.io 的内存泄漏

转载 作者:数据小太阳 更新时间:2023-10-29 04:51:36 27 4
gpt4 key购买 nike

我发现当手动断开套接字时,套接字并没有在套接字 io 服务器端被完全破坏。我找到了 this topic on github有用。当我在寻找一些阻止 GC 清理套接字的变量链接时,我在这里问一个问题。

如果这里有人遇到同样的问题,这会很有帮助。

无效的代码:

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

///...................

socket.disconnect();

但是,使用受限库字段的解决方法:

delete io.sockets[url];
io.j = [];

最佳答案

实际上,这是按预期工作的,当您断开一个套接字时,您只是声明您现在不希望从该套接字接收任何更多数据,要实际销毁该套接字,您基本上可以执行 delete socket Action 。在断开连接事件上使用它,即:

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

您还可以在外部函数的 io.sockets.sockets 对象上执行此操作:

function deleteSocket(socketID){
delete io.sockets.sockets[socketID];
}

关于javascript - 使用 socket.io 的内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9597692/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com