Skip to content

问题现象

管理员登录平台后台/门店后台,或用户在移动端/PC端打开在线客服聊天时,浏览器控制台报错:

  • WebSocket connection to 'wss://www.yourdomain.com/ws' failed
  • WebSocket is closed before the connection is established
  • 聊天界面右下角提示“网络已断开”或无法实时收到新消息。

根本原因与排查步骤

检查 Nginx 站点配置中的 WebSocket 反向代理(核心)

WebSocket 握手依赖 HTTP Upgrade 协议头。 打开 Nginx 站点配置文件,确保反向代理规则中包含以下 WebSocket 升级配置:

nginx
location / {
    proxy_pass http://127.0.0.1:20698; # 或对应 Swoole 监听端口
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_read_timeout 600s; # 保持长连接
}

重载 Nginx:nginx -s reload


检查各前端源码中的 WS 地址配置

  • 管理后台(Admin / Store / Cashier / Supplier): 在各前端目录下的 setting.js 中,确认 wsSocketUrl(或长连接地址)配置为正确的线上域名(通常形如 wss://你的域名/wswss://你的域名)。
  • 移动端(Uniapp): 在 view/uniapp/config/app.js 中,确认 VUE_APP_WS_URL 配置为 wss://你的域名/ws
  • 注意:HTTPS 站点必须使用 wss:// 协议,HTTP 站点使用 ws:// 协议。

检查 Swoole WebSocket 监听服务状态

登录服务器终端,检查 Swoole 守护进程运行状态:

bash
supervisorctl status ebaozu_v4

若处于 STOPPED 或 FATAL 状态,请查看 runtime/log/ 日志排查端口占用或代码启动报错。

承信租多门店租赁商城系统官方文档