gpt4 book ai didi

node.js - Node.JS 中的垃圾收集套接字

转载 作者:行者123 更新时间:2023-12-02 03:19:46 24 4
gpt4 key购买 nike

我正在使用一个 Node 库,它在处理完套接字后没有明确关闭套接字。相反,它尝试通过删除对套接字的引用并让它们被垃圾收集来进行清理。

谷歌搜索让我失望:我认为 GC 不可能清理未关闭的套接字。也就是说,从操作系统的角度来看,我认为任何套接字描述符都将继续使用。

此外,假设我作为库使用者可以访问套接字对象,那么关闭它们的最佳方法是什么?我玩过 end() , close() , 和 destroy()成功有限。有时它们似乎永久阻塞(结束/销毁),而其他时候似乎从未进行回调(关闭)。

最佳答案

这可能是由于您的套接字发送了一个 FIN 包并在等待另一端发送 FIN2 消息时挂断了连接。如果另一侧的 socket 没有很好地关闭,您的人将不会收到任何包裹,从而永远挂断。
其实,end sends a FIN packet并且不会关闭套接字。

一个可能的解决方案是 wait for a while on it通过 setTimeout当您调用 end函数,然后 explicitly destroy it通过函数 destroy .如果另一端正确关闭了连接,这不会影响您的套接字,否则将强制关闭并释放所有资源。

关于node.js - Node.JS 中的垃圾收集套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34300887/

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