是否有 NodeJS 的“直通”流?
即一个对象,我放入其中的任何内容都会立即出来,不变。
这似乎毫无意义,但它可以作为一个“静态中心”,在开发过程中快速更改代码。
是的。其实,就是这个名字。:)
它在 Node 0.10 及更高版本中可用,作为Streams 2 更新的一部分(在最后提到)。
它也是 Streams 中少数可以直接实例化的类型之一:
var pass = new stream.PassThrough();
而且,它目前简要记录在API for Stream Implementors下(靠近Steams ToC的底部)。
当您需要将 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);