2017-07-20 5 views
0

J'utilise le demande le module pour analyser une liste d'URL et voudrais limiter le nombre de sockets ouvertes à 2:Comment obtenir le nombre de sockets ouvertes en cours dans Node?

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

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

... code ... 

done(); 

cependant, lors de la boucle sur un tableau d'URL et l'émission d'une nouvelle demande à chacun - cela ne semble pas fonctionner.

Y at-il un moyen d'obtenir le nombre actuel de sockets ouverts pour le tester?

Répondre

1

Je crois que maxSockets cartes pour http.Agent.maxSockets, qui limite le nombre de requêtes simultanées à la même origine (host:port).

This comment, du développeur de request, suggère le même:

En fait, la mise en commun contrôle le passé à l'agent principal. chaque agent détient tous les hôtes et les étrangle maxSockets par hôte

En d'autres termes, vous ne pouvez pas l'utiliser pour limiter le nombre de requêtes simultanées en général. Pour cela, vous devez utiliser une solution externe, par exemple en utilisant limiter ou async.queue.