WebSocket连接失败
一句话:实时聊天、通知、协作页面无法建立长连接,常见于代理头、HTTPS、路径或服务端配置错误。
它是什么
WebSocket连接失败通常表现为聊天不实时、控制台报connection failed、页面一直重连。它可能由前后端地址不一致、HTTPS页面连接ws而不是wss、Nginx没有配置Upgrade头、服务端路径错误或负载均衡超时引起。
适合干什么
- 做AI聊天、客服系统、协作编辑的人
- 部署后本地WebSocket正常线上失败的人
- 使用Nginx、Docker或云平台代理长连接的人
- 需要让AI应用实时返回流式结果的人
不适合干什么
- 普通HTTP接口404或500问题
- 数据库连接失败
- 纯静态页面没有实时通信的项目
- 浏览器完全无法访问网站的DNS问题
普通人怎么用
- 打开浏览器控制台查看WebSocket错误
- 确认前端连接地址和后端WebSocket路径
- HTTPS页面必须使用wss
- 检查反向代理是否支持Upgrade
- 查看服务端是否收到连接请求
进阶用户怎么用
- 配置代理的Connection和Upgrade头
- 检查超时时间和心跳机制
- 确认负载均衡是否支持粘性会话
- 为断线重连设计指数退避
常见误区
- HTTPS页面还在连接ws://
- Nginx少了Upgrade相关配置
- 前端路径写成/socket,后端实际是/ws
- 把WebSocket当普通HTTP接口测试
和相似工具的区别
- WebSocket vs HTTP:HTTP通常一次请求一次响应,WebSocket建立长连接后可以双向持续通信。
- WebSocket vs SSE:WebSocket双向通信,SSE主要是服务器向浏览器单向推送。
入门步骤
- 看控制台
- 确认ws/wss
- 查路径
- 查代理头
- 查服务端日志
- 测试重连
- 配置心跳
推荐工具(第三方)
Chrome DevTools、Nginx、Socket.IO、ws、Caddy、Docker