Node.js 关闭可读流
问题是我找不到如何停止刷新文件数据。我尝试了Node.js 关闭可读流,node.js,pipe,Node.js,Pipe,问题是我找不到如何停止刷新文件数据。我尝试了unpipe()方法。当从curl请求文件并关闭它时,它似乎起作用。但在关闭浏览器时,它不会停止刷新文件。并读取整个文件。我怎样才能阻止它 var http = require("http"), fs = require("fs"), url = require("url"); var stream; var requestHandlers = { video: function(request, response) {
unpipe()
方法。当从curl请求文件并关闭它时,它似乎起作用。但在关闭浏览器时,它不会停止刷新文件。并读取整个文件。我怎样才能阻止它
var http = require("http"),
fs = require("fs"),
url = require("url");
var stream;
var requestHandlers = {
video: function(request, response) {
var totalbytes = 0;
response.writeHead(200, {"Content-Type": "video/mp4"});
stream = fs.createReadStream('video.mp4');
stream.pipe(response);
stream.on('data', function(chunk) {
totalbytes += chunk.length;
});
stream.on('end', function(){
console.log("Video connection ended. Total bytes sent %d", totalbytes);
});
stream.on('close', function(){
console.log("Video connection closed. Total bytes sent %d", totalbytes);
});
}
}
var handle = {
"/video.mp4": requestHandlers.video
};
var myServer = http.createServer(function (request, response) {
var pathname = url.parse(request.url).pathname;
console.log("Request for " + pathname + " received from " + request.connection.remoteAddress);
if (typeof handle[pathname] === 'function') {
handle[pathname](request, response);
} else {
response.writeHead(404, {"Content-Type": "text/html"});
response.write("404 Not found");
response.end();
}
request.on('close', function(){
// stream.unpipe(); //does not help
console.log("Connection closed");
});
});
myServer.listen(5555);
console.log("Server started");
我很确定您需要连接到
主体
事件onunload
,然后从那里向您的服务器进行API调用,以将其标记为停止。这也意味着,由于有多个用户,您需要某种类型的密钥来知道停止哪一个。有没有其他办法停止冲洗?如果使用unpipe()是正确的,那么我将考虑如何以及何时调用它。