Skip to content

Commit 003a07e

Browse files
committed
fix: listen "close" event from socket
1 parent b59893d commit 003a07e

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

lib/http-proxy/ws/interceptor.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)