clarify myDuplex => reader, myDuplex2 => writer

This commit is contained in:
AJ ONeal 2017-04-28 02:47:41 +00:00
parent 160c591d7f
commit 04f10090ea
1 changed files with 19 additions and 17 deletions

View File

@ -145,7 +145,7 @@ local handler and the tunnel handler.
You could do a little magic like this:
```js
var Dup = {
var StreamImpl = {
write: function (chunk, encoding, cb) {
this.__my_socket.write(chunk, encoding);
cb();
@ -163,34 +163,36 @@ stunnel.connect({
// data is the hello packet / first chunk
// info = { data, servername, port, host, remoteAddress: { family, address, port } }
var myDuplex = new (require('stream').Duplex)();
var myDuplex2 = new (require('stream').Duplex)();
// here "reader" means the socket that looks like the connection being accepted
var reader = new (require('stream').Duplex)();
// here "writer" means the remote-looking part of the socket that driving the connection
var writer = new (require('stream').Duplex)();
// duplex = { write, push, end, events: [ 'readable', 'data', 'error', 'end' ] };
myDuplex2.__my_socket = myDuplex;
myDuplex2._write = Dup.write;
myDuplex2._read = Dup.read;
reader.__my_socket = writer;
reader._write = StreamImpl.write;
reader._read = StreamImpl.read;
myDuplex.__my_socket = myDuplex2;
myDuplex._write = Dup.write;
myDuplex._read = Dup.read;
writer.__my_socket = reader;
writer._write = StreamImpl.write;
writer._read = StreamImpl.read;
myDuplex.remoteFamily = info.remoteFamily;
myDuplex.remoteAddress = info.remoteAddress;
myDuplex.remotePort = info.remotePort;
reader.remoteFamily = info.remoteFamily;
reader.remoteAddress = info.remoteAddress;
reader.remotePort = info.remotePort;
// socket.local{Family,Address,Port}
myDuplex.localFamily = 'IPv4';
myDuplex.localAddress = '127.0.01';
myDuplex.localPort = info.port;
reader.localFamily = 'IPv4';
reader.localAddress = '127.0.01';
reader.localPort = info.port;
httpsServer.emit('connection', myDuplex);
httpsServer.emit('connection', reader);
if (cb) {
process.nextTick(cb);
}
return myDuplex2;
return writer;
}
});
```