web-dev-qa-db-ja.com

NodeJSの「パススルー」ストリームはありますか?

NodeJSの「パススルー」ストリームはありますか?

つまり、入れたものは何も変わらず、すぐに出てくるオブジェクトです。

それは無意味に思えますが、開発中にコードを急速に変更するための「静的中心」として役立ちます。

26
fadedbee

うん。実際、まさにその名によって。 :)

stream.PassThrough

Node 0.10以降 Streams 2 update の一部として使用できます)==(最後に記載)。

また、直接インスタンス化できるストリームからの数少ないタイプの1つでもあります。

var pass = new stream.PassThrough();

そして、それは現在 Stream ImplementorsのAPISteams ToC の下部に向かって)に簡単に文書化されています。

37

TCPサーバーから別のサーバーにTCPサーバーの入力バイトを送信する必要がある場合、それは本当に便利です。

私のmicrontollerアプリケーションのWebパーツで、これを次のように使用しています

   var net = require('net'),
       PassThroughStream = require('stream').PassThrough,
       stream = new PassThroughStream();

   net.createServer({allowHalfOpen: true}, function(socket) {
     socket.write("Hello client!");
     console.log('Connected:' + socket.remoteAddress + ':' +    socket.remotePort);
     socket.pipe(stream, {end: false});
     }).listen(8080);

   net.createServer(function(socket) {
     stream.on('data', function (d) {
      d+='';
      socket.write(Date() + ':' + ' ' + d.toUpperCase());
    });
   socket.pipe(stream);
   }).listen(8081);
4
sukanta