私はwebsocketからデータを受け取っています。バイナリデータを20ms単位で送信します。それが入って来てバックエンドプロセスは、連続ストリームとしてデータを読み取ることができるように、私はこれらのチャンクのそれぞれを連結する必要があります。今のところノード内の同じファイルに非同期で書き込みして読み込む方法は?
//Create the file and append binary as it comes in
tmp.file({postfix: '.raw' },function (err, path, fd, cleanup) {
if (err) throw err;
newPath = path
fs.appendFile(newPath, new Buffer(binary), (err) => {
if (err) throw err;
})
})
//Read the file as it is written
fs.createReadStream(newPath).pipe(recStream);
私はただそこにあることを確認するcreateReadStream
に簡単な半秒の遅延を持っていますファイル内のデータ。
これは間違いなく、正しく動作していないと思われます。これについて正しい方法は何ですか?
なぜファイルに書き込んだのですか?もう一度読み込みますか?データを他のプロセスに直接送信することもできます。 – SpiderPig
それは20msに分割されているので、それを送信するAPIは、チャンクが送信されるたびにアップロードが終了したことを通知します。 –
ノードjsでデュプレックスストリームを使用http://codewinds.com/blog/2013-08-31-nodejs-duplex-streams.html –