按照workerman手册以及各种贴安装wss之后,部分客户端链接报错Error in connection establishment: net::ERR_CONNECTION_CLOSED

BBQ

按照手册及网上教程,实现了安装wss,大部分客户端都能够正常连接,会有个别客户端连接报错
Error in connection establishment: net::ERR_CONNECTION_CLOSED
服务器用的阿里云,环境 宝塔
php7.2+nginx 证书是阿里云申请的
项目用的是 tp5.0
贴一下站点配置

截图

截图

web(vue)端连接失败会报错,没有走到onConnect方法
Error in connection establishment: net::ERR_CONNECTION_CLOSED

客户端连接上收不到信息,因为连接的时候有对当前client_id添加定时器,后台可以查到有用户client_id和定时器id,但是客户端收不到消息,并且客户端也发送不了认证消息,会一直10秒重连

onConnect代码
截图
客户端连接之后并收不到发送的 连接成功,服务端也收不到认证消息,然后反复10秒重连

大部分用户是正常的,总会有三四个用户有这种情况,刚使用GatewayWorker不久,一路看帖搭建环境到使用,还有很多不了解的,希望大佬帮忙解答!

4014 1 0
1个回答

six

直接ws连30000试下有没有问题,如果没有问题说明是nginx配置有问题。

按照手册配置nginx试下呢?
http://doc.workerman.net/faq/secure-websocket-server.html

  location /wss
  {
    proxy_pass http://127.0.0.1:30000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header X-Real-IP $remote_addr;
  }

手册里 location是 /wss,不是 /,而且没有 if (!-e $request_filename) { ...}

客户端连的时候连 wss://域名.com/wss,注意地址末尾有个 /wss

  • BBQ 2021-01-24

    好的,感谢大佬!
    之前我配置的时候也是 location /wss{....}
    因为访问的时候地址没加 /wss,一直访问不了,所以我写在了 location /后面
    if (!-e $request_filename) { ...},这一坨我是tp框架的伪静态
    原来 / 后面就是要访问的配置文件,现在我懂了,之前没有访问到对应的配置信息
    我应该理解你的意思了,下此再遇到连不上的我调试试一下

年代过于久远,无法发表回答
🔝