如何获取Node中当前打开的套接字的计数?

时间:2017-07-20 11:46:23

标签: node.js sockets node-request node-https

我正在使用请求模块抓取网址列表并希望如此 将打开的套接字数量限制为2:

var req = request.defaults({
   forever: true,
   pool: {maxSockets: 1}
});

req(options, function(error, response, body) {

 ... code ...

 done();

然而,当循环遍历一组URL并向每个URL发出新请求时 - 似乎不起作用。

有没有办法获得当前打开的套接字数量来测试它?

1 个答案:

答案 0 :(得分:1)

我认为maxSockets映射到http.Agent.maxSockets,这会将的并发请求数限制为同一个来源host:port)。

来自request的开发者的

This comment建议相同:

  

实际上,池控制传递给核心的代理。每个代理都拥有所有主机并限制每个主机的maxSockets

换句话说,您通常不能使用它来限制并发请求的数量。为此,您需要使用外部解决方案,例如使用limiterasync.queue