Есть ли сквозной поток NodeJS?
Есть ли сквозной поток NodeJS?
то есть. объект, где все, что я в него вставляю, выдается немедленно, без изменений.
Кажется бессмысленным, но это было бы полезно как "статический центр" для быстрого изменения кода во время разработки.
Ответы
Ответ 1
Да. Собственно, именно этим именем.:)
stream.PassThrough
Он доступен с Node 0.10 и позже как часть обновления Streams 2 (упоминается в конце).
Он также является одним из немногих типов из потоков, которые могут быть непосредственно созданы:
var pass = new stream.PassThrough();
И в настоящее время он кратко документирован в API для исполнителей потоков (в нижней части Steams ToC).
Ответ 2
Это действительно удобно, когда вам нужно отправлять входные байты TCP-сервера на другой TCP-сервер.
В моей веб-части приложения microntoller я использую это следующим образом
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);