34

是否有 NodeJS 的“直通”流?

即一个对象,我放入其中的任何内容都会立即出来,不变。

这似乎毫无意义,但它可以作为一个“静态中心”,在开发过程中快速更改代码。

4

2 回答 2

48

是的。其实,就是这个名字。:)

stream.PassThrough

它在 Node 0.10 及更高版本中可用,作为Streams 2 更新的一部分(在最后提到)。

它也是 Streams 中少数可以直接实例化的类型之一:

var pass = new stream.PassThrough();

而且,它目前简要记录在API for Stream Implementors下(靠近Steams ToC的底部)。

于 2013-10-18T10:14:58.127 回答
5

当您需要将 TCP Server 的输入字节发送到另一个 TCP Server 时,它真的很方便。

在我的 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);
于 2016-03-24T12:43:44.050 回答