1

我想知道一个好的解决方案是保持 Node 应用程序运行直到可读流关闭。所以在这样一个简单的例子中:

var tcpVideoStream = new TcpVideoStream(options);
var writeStream = fs.createWriteStream(options.fileName);
tcpVideoStream.pipe(writeStream);

如何保持我的应用程序运行,以便它继续将流数据写入文件,直到可读流(在这种情况下为 tcpVideoStream)关闭?即发出“结束”或“关闭”。

谢谢!

4

2 回答 2

1

在数据完全通过管道传输之前,您的应用程序不会关闭。只有当可读流仍然存在时,您的应用程序才会关闭,例如当没有data事件侦听器时,或者您没有调用resume()它(如果它已经暂停)。使用pipe()就像添加一个data监听器。

例如,这将退出而没有输出。

var fs = require('fs');

var read = fs.createReadStream('./src');
var write = fs.createWriteStream('./dest');
read.pause();

read.on('data', function(chunk) {
  console.log(chunk);
});
于 2013-10-28T05:23:05.197 回答
0

你可能想看看这个页面。{对于 WriteStreams}

http://nodejs.org/docs/v0.6.18/api/stream.html#stream_stream_pipe_destination_options

基本上使用 {end: false} 保持写入流打开,以便您可以调度另一个结束事件。

于 2014-05-18T20:54:14.597 回答