【发布时间】:2014-07-26 01:09:08
【问题描述】:
我正在编写一个从某个地方下载一个文件的代码,并且我正在实时流式传输到客户端。我的服务器中的文件永远不会满。只有块。代码如下:
downloader.getLink(link, cookies[acc], function(err, location) {
if (!err) {
downloader.downloadLink(location, cookies[acc], function(err, response) {
if (!err) {
res.writeHead(200, response.headers);
response.pipe(res);
} else
res.end(JSON.stringfy(err));
});
} else {
res.end(JSON.stringfy(err));
}
});
正如我所见,没有任何东西阻止此代码,因为响应来自一个简单的 http.response... 问题是,这样我只能同时流式传输 6 个文件。但是服务器并没有使用所有资源(cpu 10%,内存 10%),它是一个单核。在 +/- 5 个文件之后,我只得到加载页面并且流没有开始,只有在其中一些文件完成之后。
这不是对我下载文件的第一台服务器的限制,因为例如使用我的浏览器,我可以下载任意数量的文件。我是在做错事还是这是我可以更改的节点限制?谢谢
【问题讨论】:
标签: node.js io v8 nonblocking