我有2个节点js服务器A和B,其中A连接到B以获取文件(大文件)。这是我用来处理流的代码。
var downloadedAmount = 0;
stream.on('data', function (data) {
if (Buffer.isBuffer(data)) {
downloadedAmount += data.toString('utf8').length;
} else {
downloadedAmount += data.length;
}
if (!res.write(data)) {
stream.pause();
}
});
res.on('finish', function () {
console.log("Finish called");
sendUsage(reqId, downloadedAmount); // this is a async db/network call
});
stream.on("end", function () {
console.log("End called");
res.end();
});
res.on("drain", function () {
stream.resume();
});
当仅下载一个文件时,它将下载文件。我的问题是当我尝试下载多个文件(大于300MB)时,这增加了服务器的负载,连接在B处关闭,所有文件在124MB处停止。谁能告诉我我在做什么错?
更新:问题出在B服务器中,因为直接多次下载(从浏览器请求)也趋于停止在124MB左右。
行。问题似乎完全在另一个位置。我更改了Apache服务器设置(B服务器用来将文件获取到
EnableSendfile On
现在可以了。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句