@@ -40,7 +40,6 @@ module.exports = class Connection extends EventEmitter {
4040
4141 connect ( options ) {
4242 var that = this ;
43- var transport ;
4443
4544 if ( options ) {
4645 this . options = options ;
@@ -52,44 +51,40 @@ module.exports = class Connection extends EventEmitter {
5251 this . auto_reconnect_max_retries = options . auto_reconnect_max_retries || 3 ;
5352
5453 if ( this . transport ) {
55- unbindTransportEvents ( this . transport ) ;
54+ this . clearTimers ( ) ;
55+ this . transport . removeAllListeners ( ) ;
56+ this . transport . disposeSocket ( ) ;
5657 }
57- transport = this . transport = new options . transport ( options ) ;
58+ this . transport = new options . transport ( options ) ;
5859
5960 if ( ! options . encoding || ! this . setEncoding ( options . encoding ) ) {
6061 this . setEncoding ( 'utf8' ) ;
6162 }
6263
63- // Some transports may emit extra events
64- transport . on ( 'extra' , function ( /* event_name, argN */ ) {
65- that . emit . apply ( that , arguments ) ;
66- } ) ;
67-
68- bindTransportEvents ( transport ) ;
64+ bindTransportEvents ( this . transport ) ;
6965
7066 this . registered = false ;
7167 this . requested_disconnect = false ;
7268 this . emit ( 'connecting' ) ;
73- transport . connect ( ) ;
69+ this . transport . connect ( ) ;
7470
7571 function bindTransportEvents ( transport ) {
7672 transport . on ( 'open' , socketOpen ) ;
7773 transport . on ( 'line' , socketLine ) ;
7874 transport . on ( 'close' , socketClose ) ;
7975 transport . on ( 'debug' , transportDebug ) ;
80- }
81-
82- function unbindTransportEvents ( transport ) {
83- transport . removeListener ( 'open' , socketOpen ) ;
84- transport . removeListener ( 'line' , socketLine ) ;
85- transport . removeListener ( 'close' , socketClose ) ;
86- transport . removeListener ( 'debug' , transportDebug ) ;
76+ transport . on ( 'extra' , transportExtra ) ;
8777 }
8878
8979 function transportDebug ( out ) {
9080 that . debugOut ( out ) ;
9181 }
9282
83+ function transportExtra ( ) {
84+ // Some transports may emit extra events
85+ that . emit . apply ( that , arguments ) ;
86+ }
87+
9388 // Called when the socket is connected and ready to start sending/receiving data.
9489 function socketOpen ( ) {
9590 that . debugOut ( 'Socket fully connected' ) ;
@@ -143,7 +138,7 @@ module.exports = class Connection extends EventEmitter {
143138 wait : that . auto_reconnect_wait
144139 } ) ;
145140 } else {
146- unbindTransportEvents ( that . transport ) ;
141+ that . transport . removeAllListeners ( ) ;
147142 that . emit ( 'close' , ! ! err ) ;
148143 that . reconnect_attempts = 0 ;
149144 }
0 commit comments