ストリームを使用してクライアントにかなり大きなファイルを提供する単純な HTTP サーバーを構築しています。同時に複数のクライアントにサービスを提供する必要がありますが、それを実現する最も簡単な方法は何だろうと考えています。
cluster
モジュールを使用して {num CPUs} 個のプロセスを fork するのが最も簡単な方法かもしれないというのが私の最初の感想です。
var StreamBrake = require('streambrake');
var http = require('http');
var fs = require('fs');
var server = http.createServer(function(req, res) {
var stream = fs.createReadStream('/data/somefile');
stream.pipe(new StreamBrake(10240)).pipe(res);
});
server.listen(1234, 10);
編集: 明確にするために、問題は、このコードが最初のクライアントの処理を完了するまで、2 番目のクライアントの処理を開始しないことです。