毎秒通過するデータ量が制限された(巨大な)ファイルを送信しようとしています(を使用TooTallNate/node-throttle):
var fs = require('fs');
var Throttle = require('throttle');
var throttle = new Throttle(64);
throttle.on('data', function(data){
console.log('send', data.length);
res.write(data);
});
throttle.on('end', function() {
console.log('error',arguments);
res.end();
});
var stream = fs.createReadStream(filePath).pipe(throttle);
クライアントのブラウザでダウンロードをキャンセルすると、ストリームは完全に転送されるまで続行されます。また、同じ動作で
上記のシナリオをテストしました。npm node-throttled-stream
ブラウザがリクエストを閉じた場合にストリームをキャンセルするには?
編集:
を使用して接続close
イベントを取得できます
req.connection.on('close',function(){});
しかし、これ以上読むのを止めるために使用できるstream
adestroy
も an end
orプロパティもありません。stop
stream
私はプロパティを提供しますpause
Docが、コンテンツの受信を停止するだけでなく、ノードがファイル全体を読み取るのを停止したいと思います(ドキュメントで説明されているように)。