VSCode端口转发保留死Socket问题咨询
VSCode SSH端口转发残留死Socket导致WebSocket连接异常问题
环境与配置
- Web应用通过WebSocket连接Python服务器,连接失败时触发错误回调,调用
close()并将实例置为null,随后每500毫秒重试一次 - Python服务器基于Websockets异步库封装了同步架构的服务器实现
- 开发环境:服务器运行在Ubuntu虚拟机,Web应用也存储在该虚拟机内;通过VSCode SSH插件配合LiveServer插件部署Web应用,LiveServer自动转发5500端口到Windows本地,手动转发8765端口用于WebSocket通信
问题描述
整体运行正常,但**先启动Web应用(端口转发已启用但服务器未启动)**时会出现异常:
- Web应用连接失败后持续重试,浏览器端已关闭的Socket似乎在VSCode端口转发中被保留
- 后续启动服务器后,Web应用仍无法建立有效连接,必须重启端口转发(有时需重启VSCode)才能恢复
- 重启端口转发时,服务器会收到大量已关闭的连接请求,日志如下:
2023-02-22 21:38:10.281 [INFO] <WebsocketClientHandler> Client disconnected (ID=54a78428e6444e2f8f0db88773f5e544). 0 clients remainings 2023-02-22 21:38:10.282 [INFO] <WebsocketClientHandler> New client connected (ID=d2a266bf93f84fa2b6b70523e15543e0). 1 clients total 2023-02-22 21:38:10.294 [INFO] <WebsocketClientHandler> Client disconnected (ID=d2a266bf93f84fa2b6b70523e15543e0). 0 clients remainings 2023-02-22 21:38:10.295 [INFO] <WebsocketClientHandler> New client connected (ID=7687380cb1de4d13b2460f904dfaae2f). 1 clients total 2023-02-22 21:38:10.307 [INFO] <WebsocketClientHandler> Client disconnected (ID=7687380cb1de4d13b2460f904dfaae2f). 0 clients remainings 2023-02-22 21:38:10.307 [INFO] <WebsocketClientHandler> New client connected (ID=b8cb24da688b44d0a3a3f4c518b00732). 1 clients total 2023-02-22 21:38:10.318 [INFO] <WebsocketClientHandler> Client disconnected (ID=b8cb24da688b44d0a3a3f4c518b00732). 0 clients remainings 2023-02-22 21:38:10.319 [INFO] <WebsocketClientHandler> New client connected (ID=8d929c0b816c4888a846a1af24e545cd). 1 clients total 2023-02-22 21:38:10.330 [INFO] <WebsocketClientHandler> Client disconnected (ID=8d929c0b816c4888a846a1af24e545cd). 0 clients remainings 2023-02-22 21:38:10.330 [INFO] <WebsocketClientHandler> New client connected (ID=f0d99dbeb5cd44619f3953fc54e42a1f). 1 clients total 2023-02-22 21:38:10.343 [INFO] <WebsocketClientHandler> Client disconnected (ID=f0d99dbeb5cd44619f3953fc54e42a1f). 0 clients remainings 2023-02-22 21:38:10.346 [INFO] <WebsocketClientHandler> New client connected (ID=99265e71358c4a58bafb1b18c320970e). 1 clients total 2023-02-22 21:38:10.357 [INFO] <WebsocketClientHandler> Client disconnected (ID=99265e71358c4a58bafb1b18c320970e). 0 clients remainings 2023-02-22 21:38:10.358 [INFO] <WebsocketClientHandler> New client connected (ID=671bffa2d5164b0599006f5fc8ef7766). 1 clients total 2023-02-22 21:38:10.369 [INFO] <WebsocketClientHandler> Client disconnected (ID=671bffa2d5164b0599006f5fc8ef7766). 0 clients remainings
当前临时解决方案
必须严格按照端口转发→服务器→Web应用的顺序启动;若出现死Socket残留,需重启端口转发(或VSCode)清除。本地开发时无此问题。
疑问
这种情况是操作流程有误,还是VSCode端口转发存在缺陷?
内容的提问来源于stack exchange,提问作者user2302957
相关产品推荐
相关产品推荐

