是否可以编写非阻塞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
在阻塞!
难道我做错了什么?
更新所以,它不会阻塞,它会同时阻塞。从可以同时下载两个文件的意义上说,它不会阻塞。从某种意义上说,它会阻塞,因为创建缓冲区是一个漫长的操作。