0

我已经构建了一个 node.js 应用程序,用于与一些外部服务器建立与保持活动、事件流发布请求的连接。我发送了 400 个,并使用请求节点包中data的事件继续对接收到的数据采取行动。我也听,和事件。endresponseerror

当我从 localhost 运行应用程序时,一切都按计划完美运行。但是,当我将它推送到 Openshift 时,只有前 5 个请求按预期工作,其余的只是......消失了。我没有收到任何错误,没有收到任何回复,也没有end。我尝试在它们之间有一些延迟发送请求,我尝试查找有关最大请求的信息,我彻底调试了它 - 没有任何效果。有没有人有一个想法,基于对问题的描述,如何使所有 400 个请求工作(或者有一个答案为什么他们不会)?

4

1 回答 1

0

我自己找到了解决该问题的方法。agent.maxSockets看来,由于在 0.10 版本的 Node.js 中服务器的默认属性http设置为该数字,Request.js 库无法建立超过 5 个的连接。虽然我没有http直接要求包,但 Request.js 库使用了它。我所要做的就是将以下代码放在主应用程序模块中:

var http = require('http');
http.globalAgent.maxSockets = 500; //Or any other number you want

顺便提一句。在Node.js 的 0.12 版本中,默认值已更改为无穷大。

于 2015-10-14T14:49:03.147 回答