如何处理在Node中发送多个http请求?

时间:2012-04-19 18:40:48

标签: node.js concurrency httpwebrequest

我有发送http请求的标准代码。使用http.globalAgent。

我将我的maxSockets设置为2500。

然后当我一次发出多个请求时,我收到此错误:

['{'code':'ECONNRESET'}']

但是,如果我在每次请求之间的一段超时后发出请求,那么它就可以了。

所以,问题是:

1)ECONNRESET真正意味着什么?为什么会发生这种错误?

2)如何在不收到错误的情况下立即发送多个请求?


发送多个请求的原始代码:

// I'm using Seq()
Seq().
 seq(function() {
  this(null, ['p1','p2','p3','p4','p5']);
})
.flatten(false)
.parEach(fuctnion(data) {
  // send out request
  sendRemoteRequest(data);  // a function that uses http.request
})
.seq(function(data) {
  console.log("done");
})

1 个答案:

答案 0 :(得分:3)

ECONNRESET基本上意味着远程服务器已关闭连接。我假设它只允许一定数量的并发连接,如果达到该限制,它只会丢弃连接,导致程序中出现ECONNRESET