2013-10-18 13 views
21

Esiste un flusso "passthrough" di NodeJS?Esiste un flusso "passthrough" di NodeJS?

cioè un oggetto dove tutto ciò che ho inserito viene immediatamente, immutato.

Sembra inutile, ma sarebbe utile come un "centro statico" per il codice che cambia rapidamente durante lo sviluppo.

+4

[Forse] (http://nodejs.org/api/stream.html#stream_class_stream_passthrough) (0.10+). –

+1

@ JonathanLonowski grazie, ho letto quella pagina 20 volte, perché ancora mi mancava. Fagli una risposta e io accetterò. – fadedbee

risposta

33

Sì. In realtà, con quel nome. :)

stream.PassThrough

È disponibile con Node 0.10 e poi come parte del Streams 2 update (menzionato alla fine).

E 'anche uno dei pochi tipi di flussi che possono essere istanziati direttamente:

var pass = new stream.PassThrough(); 

E, è documentata brevemente sotto API for Stream Implementors (verso la parte inferiore del Steams ToC).

2

è molto utile quando è necessario inviare byte di input di un server TCP a un altro server TCP.

In parte web della mia domanda microntoller Sto usando questo come segue

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); 
+0

Per curiosità, perché è utile convogliare byte da un server TCP a quello successivo, se devono condividere lo stesso riferimento di flusso? –

Problemi correlati