WorkerMan客户端连接失败

workerman客户端连接失败

今天访问客服聊天功能发现不能发送信息,然后看到是因为 WebSocket 连接失败,图如下:连接错误信息
根据字面意思已经了解了问题是因为连接拒绝,那么为什么会拒绝呢?
接下来开始找原因:

  1. 官网上找常见问题
  2. 百度 or Google

很幸运的是在官网上可以找到 客户端连接失败原因

connection refuse(连接拒绝)
一般是以下原因:
1、客户端连接的端口错了
2、客户端连接的域名或者ip错了
3、如果客户端使用了域名连接,域名可能指向了错误的服务器ip
4、服务端没有启动或者端口没有被监听
5、使用了网络代理软件
6、服务端监听ip与访问地址不在一个地址段。例如服务端监听127.0.0.1,则客户端只能通过127.0.0.1连接,不能通过局域网ip或者外网ip连接。建议监听地址设置为0.0.0.0,这样本机、内网、外网都可以连接。

仔细排查了问题,发现是因为 httphttps 的问题引起的:
websocket 与两种协议的对应关系如下

http -> new WebSocket(‘ws://xxx’)
https -> new WebSocket(‘wss://xxx’)

后端启动的时候已经根据证书判断使用的是 https 协议,所以说前端连接的时候应该使用 wss ,而我登录的后台使用的 http ,所以前端根据协议使用了 ws 导致连接失败,将协议改为 https 就可以正常使用了。

还有一个办法就是将 http 请求利用 Nginx 代理到 https 接口上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值