我正在使用Request模块来获取html页面,效果很好,但是一段时间后,在某些请求上我收到了ENOTFOUNDEADDRINFO错误。在网上浏览后,我发现了一些类似的问题(#699#5488#697),据我了解,我可能没有使用某些(或全部?)响应,并且在某个时候该应用程序到达了套接字池最大尺寸。

我不确定这一切,但我正在考虑将globalAgent.maxSockets增加到100?并总是通过在请求回调的开始处调用response.resume()来消耗响应。那有什么道理吗?还是我偏离了轨道?

我已经研究了Node的代码以尝试了解resume()的功能,但是我不确定是否找到了正确的函数(#L698)。

谢谢你的帮助。

最佳答案

根据 kanaka 的建议,我正在用我找到的解决方案回答我自己的问题:

我做了我所说的我会尝试并解决了问题(虽然不确定为什么)。所以在初始化服务器之前,我设置了 http.globalAgent.maxSockets = 100https.globalAgent.maxSockets = 100,每次使用请求模块时,我都会在回调中添加:if (response) { response.resume(); }
也许这会帮助别人:)

10-04 15:32