@@ -46,11 +46,16 @@ module.exports = class Interceptor {
4646 this . _proxyReq = proxyReq ;
4747 this . _proxyRes = proxyRes ;
4848 this . _proxySocket = proxySocket ;
49+ this . _isSocketOpened = true ;
4950
5051 this . _configure ( ) ;
5152 }
5253
5354 _configure ( ) {
55+ this . _proxySocket . on ( 'close' , ( ) => {
56+ this . _isSocketOpened = false ;
57+ } ) ;
58+
5459 const secWsExtensions = this . _proxyRes . headers [ 'sec-websocket-extensions' ] ;
5560 const extensions = Extensions . parse ( secWsExtensions ) ;
5661 this . _isCompressed = secWsExtensions && secWsExtensions . includes ( 'permessage-deflate' ) ;
@@ -79,7 +84,7 @@ module.exports = class Interceptor {
7984
8085 receiver . ontext = getMsgHandler ( { interceptor : this . _options . wsInterceptClientMsg , dataSender, binary : false } ) ;
8186 receiver . onbinary = getMsgHandler ( { interceptor : this . _options . wsInterceptClientMsg , dataSender, binary : true } ) ;
82- receiver . onclose = ( code , msg , { masked : mask } ) => sender . close ( code , msg , mask ) ;
87+ receiver . onclose = ( code , msg , { masked : mask } ) => this . _isSocketOpened && sender . close ( code , msg , mask ) ;
8388
8489 this . _socket . on ( 'data' , ( data ) => receiver . add ( data ) ) ;
8590 }
@@ -93,7 +98,7 @@ module.exports = class Interceptor {
9398
9499 receiver . ontext = getMsgHandler ( { interceptor : this . _options . wsInterceptServerMsg , dataSender, binary : false } ) ;
95100 receiver . onbinary = getMsgHandler ( { interceptor : this . _options . wsInterceptServerMsg , dataSender, binary : true } ) ;
96- receiver . onclose = ( code , msg , { masked : mask } ) => sender . close ( code , msg , mask ) ;
101+ receiver . onclose = ( code , msg , { masked : mask } ) => this . _isSocketOpened && sender . close ( code , msg , mask ) ;
97102
98103 this . _proxySocket . on ( 'data' , ( data ) => receiver . add ( data ) ) ;
99104 }
0 commit comments