2012-11-30 8 views
5

Ho bisogno di aumentare il numero di socket http in uscita utilizzabili da un modulo che sto scrivendo. So che è possibile fare questo globalmente utilizzando:Come impostare le connessioni client http massime in Node.js

// increase max sockets 
http.globalAgent.maxSockets = 1000; 

Qual è il miglior modello per la creazione limite maxSocket di un modulo senza influenzare gli altri moduli?

risposta

-1

Dato che l'impostazione determina il numero di connessioni simultanee disponibili per host, non è possibile impostarlo in modo specifico per singoli moduli. Tuttavia, ciò che dovresti fare è assicurarti di non ridurre il numero di connessioni simultanee da quello che l'utente ha già specificato. Ad esempio, se qualcuno imposta i suoi maxSockets a 5000 e lo hai impostato su 1000 nel modulo, potrebbero accadere cose brutte. Suggerirei qualcosa come il seguente

var max = 1000; 
if(http.globalAgent.maxSockets < max) { 
    http.globalAgent.maxSockets = max; 
} 
+0

Non è la risposta. Alla ricerca di un modo per creare moduli con un limite massimo di socket non globale – thesmart

1

La soluzione migliore è quella di passare un oggetto agente ad ogni richiesta HTTP e HTTPS si stanno facendo, con maxSockets configurati a proprio piacimento. Ciò non avrà alcun effetto su altri moduli. Vedere http://nodejs.org/docs/latest/api/http.html#http_http_request_options_callback.

Se si utilizza un framework autonomamente, anziché affidarsi direttamente al modulo http, potrebbe essere difficile e richiedere alcune patch.

Problemi correlati