@@ -46,11 +46,16 @@ module.exports = class Interceptor {
46
46
this . _proxyReq = proxyReq ;
47
47
this . _proxyRes = proxyRes ;
48
48
this . _proxySocket = proxySocket ;
49
+ this . _isSocketOpened = true ;
49
50
50
51
this . _configure ( ) ;
51
52
}
52
53
53
54
_configure ( ) {
55
+ this . _proxySocket . on ( 'close' , ( ) => {
56
+ this . _isSocketOpened = false ;
57
+ } ) ;
58
+
54
59
const secWsExtensions = this . _proxyRes . headers [ 'sec-websocket-extensions' ] ;
55
60
const extensions = Extensions . parse ( secWsExtensions ) ;
56
61
this . _isCompressed = secWsExtensions && secWsExtensions . includes ( 'permessage-deflate' ) ;
@@ -79,7 +84,7 @@ module.exports = class Interceptor {
79
84
80
85
receiver . ontext = getMsgHandler ( { interceptor : this . _options . wsInterceptClientMsg , dataSender, binary : false } ) ;
81
86
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 ) ;
83
88
84
89
this . _socket . on ( 'data' , ( data ) => receiver . add ( data ) ) ;
85
90
}
@@ -93,7 +98,7 @@ module.exports = class Interceptor {
93
98
94
99
receiver . ontext = getMsgHandler ( { interceptor : this . _options . wsInterceptServerMsg , dataSender, binary : false } ) ;
95
100
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 ) ;
97
102
98
103
this . _proxySocket . on ( 'data' , ( data ) => receiver . add ( data ) ) ;
99
104
}
0 commit comments