Wiem, że węzeł nie jest blokowany, ale właśnie zdałem sobie sprawę, że domyślne zachowanie http.listen(8000)
oznacza, że wszystkie żądania HTTP są obsługiwane pojedynczo. Wiem, że nie powinienem był być tym zaskoczony (tak działają porty), ale naprawdę zastanawiam się, jak napisać mój kod, aby móc obsłużyć wiele równoległych żądań HTTP.Obsługa wielu równoległych żądań HTTP w Node.js
Jaki jest najlepszy sposób napisania serwera, aby nie hog port 80, a długotrwałe odpowiedzi nie powodowały długich kolejek żądań?
Aby zilustrować problem, spróbuj uruchomić poniższy kod i załadować go na dwóch kartach przeglądarki jednocześnie.
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