clarify myDuplex => reader, myDuplex2 => writer
This commit is contained in:
		
							parent
							
								
									160c591d7f
								
							
						
					
					
						commit
						04f10090ea
					
				
							
								
								
									
										36
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								README.md
									
									
									
									
									
								
							| @ -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; | ||||
|   } | ||||
| }); | ||||
| ``` | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user