我的代码需要同时将实时流数据推向来自单个来源的多个客户端,但是客户端 May 或可能不会连接全部接收实时流数据。因此,我需要能够同时写入较晚接收客户的文件。
因此,我正在考虑使用流式的duplex类,我可以写入数据时可以由分配的客户端读取数据。但是,当我创建一个新的双工类并尝试将数据写入其中或挂接"数据"事件时,我会得到
[错误:未实现]
错误。那么stream.duplex类仅用于子类吗?有一种更简单的方法可以使用吗?
我的测试代码:
var duplex = require( 'stream' ).Duplex;
var myDuplex = new duplex();
myDuplex.on( 'error', function( error ) {
console.log( error );
} );
myDuplex.on( 'data', function( buffer ) {
console.log( "Received [%s]", buffer.toString( 'utf8' ) );
} );
// Push the derta
myDuplex.write( new Buffer( "Hello data.", 'utf8' ) );
是的,Duplex
用于子类别。这意味着既可写的又可读的流。它没有说明两者之间的任何关系。
您最有可能寻找的是传递变换。Transform
是一种更具体的Duplex
类型,其中可读部分是根据可读部分计算的,而PassThrough
是Transform
的琐碎实现。