So che il nodo non è bloccante, ma mi sono appena reso conto che il comportamento predefinito di http.listen(8000)
significa che tutte le richieste HTTP vengono gestite una alla volta. So che non dovrei essere sorpreso da questo (è come funzionano le porte), ma mi fa seriamente chiedermi come scrivere il mio codice in modo da poter gestire più richieste HTTP parallele.Gestione di più richieste HTTP parallele in Node.js
Quindi qual è il modo migliore di scrivere un server in modo che non entri sulla porta 80 e le risposte di lunga durata non comportino lunghe code di richieste?
Per illustrare il problema, provare a eseguire il codice riportato di seguito e caricarlo in due schede del browser contemporaneamente.
var http = require('http');
http.createServer(function (req, res) {
res.setHeader('Content-Type', 'text/html; charset=utf-8');
res.write("<p>" + new Date().toString() + ": starting response");
setTimeout(function() {
res.write("<p>" + new Date().toString() + ": completing response and closing connection</p>");
res.end();
}, 4000);
}).listen(8080);
http://blog.mixu.net/2011/02/01/understanding-the-node-js-event-loop/ – Paul