ノンブロッキングresponse.writeを書くことは可能ですか? ファイルのダウンロード中に他のクライアントが接続できるかどうかを確認する簡単なテストを作成しました。
var connect = require('connect');
var longString = 'a';
for (var i = 0; i < 29; i++) { // 512 MiB
longString += longString;
}
console.log(longString.length)
function download(request, response) {
response.setHeader("Content-Length", longString.length);
response.setHeader("Content-Type", "application/force-download");
response.setHeader("Content-Disposition", 'attachment; filename="file"');
response.write(longString);
response.end();
}
var app = connect().use(download);
connect.createServer(app).listen(80);
write
そして、ブロックしているようです!
私は何か間違ったことをしていますか?
更新なので、ブロックせず、同時にブロックします。2 つのファイルを同時にダウンロードできるという意味ではブロックしません。また、バッファの作成は長い操作であるという意味でブロックします。