总结
客户端套接字连接不断断开、重新连接、断开……等等
重现步骤
我正在使用 Kong ( https://github.com/Kong/kong ) 作为 API 网关。 websocket 服务器通过 Kong 代理
- Websocket 服务器:http://192.168.99.100:9696
- Kong 代理:
- 服务器:http://192.168.99.100:9000
- 应用程序接口(interface):
- 上游:http://192.168.99.100:9696
- uris:/api/socket.*
- 脱尿:是
其他详细信息和日志 图中:左边终端是服务器,右边是客户端。客户端日志显示:
engine.io-client:socket socket 关闭原因:“transport close”+6s
socket.io-client:manager onclose +1ms
socket.io-客户端:管理器清理+0ms
socket.io-client:套接字关闭(传输关闭)+0ms
P/s: 尝试使用 nginx 代理而不是 Kong,它工作正常,客户端套接字连接保持不变。
最佳答案
我也遇到了这个问题,想为任何遇到这个问题的人提供一个可能的线索。就我而言,断开连接背后的原因是 KONG(或 KONG 和我的浏览器之间的某些东西)正在剥离重要的 Connection: keep-alive
和 Keep-Alive: timeout= 5
响应头。 Socket IO确实发送了一个Connection: keep-alive
的请求头,但是KONG似乎忽略了它。
GitHub 上还报告了一个值得跟踪的问题: https://github.com/Kong/kong/issues/3008
我们目前正在对此进行调查,如果发现任何问题,我们会在此处更新。
关于socket.io - 通过 Kong 代理的套接字 Io - 客户端连接保持关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47088643/