我知道Node是非阻塞的,但我刚刚意识到http.listen(8000)
的默认行为意味着所有的HTTP请求都是一次处理一个。我知道我不应该对此感到惊讶(这就是端口的工作方式),但它确实让我很想知道如何编写代码,以便能够处理多个并行的HTTP请求。
那么,编写服务器的最好方法是什么,这样它就不会占用端口80,并且长时间运行的响应不会导致长请求队列?
为了说明这个问题,请尝试运行下面的代码,并同时在两个浏览器选项卡中加载它。
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);
https://stackoverflow.com/questions/17129672
复制相似问题