workerman客户端连不上怎么办

发布时间 - 2019-12-12 00:00:00    点击率:

workerman客户端连不上怎么办?

客户端连接失败原因

连接失败客户端一般会有两种报错,connection refuse 和 connection timeout

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,这样本机、内网、外网都可以连接。

connection timeout(连接超时)

一般是以下原因:

1、服务器防火墙阻止了连接,可以临时关闭防火墙试下

2、如果是云服务器,安全组也可能会阻止连接建立,需要到管理后台开放对应端口

3、服务器不存在或者没有启动

4、如果客户端使用了域名连接,域名可能指向了错误的服务器ip

5、客户端访问的ip是服务器内网ip,并且客户端和服务端不在一个局域网

其它报错

如果发生的报错不是connection refuse 和 connection timeout则一般是以下原因:

1、客户端使用的通讯协议与服务端不一致。

例如服务端是http通讯协议,客户端使用websocket通讯协议访问是无法连接的。如果客户端用websocket协议连接,那么服务端必须也是websocket协议。如果服务端是http协议的服务,那么客户端必须用http协议访问。

这里的原理类似如果你要和英国人交流,那么要使用英语。如果要和日本人交流,那么要使用日语。这里的语言就类似通讯协议,双方(客户端和服务端)必须使用相同的语言才能交流,否则无法通讯。

通讯协议不一致导致的常见的报错有:

WebSocket connection to 'ws://xxx.com:xx/' failed: Error during WebSocket handshake: Unexpected response code: xxx
WebSocket connection to 'ws://xxx.com:xx/' failed: Error during WebSocket handshake: net::ERR_INVALID_HTTP_RESPONSE

解决办法:

从上面两条报错看出,客户端使用的是ws连接是websocket协议。服务端也需要是websocket协议才行,服务端监听部分代码需要指定websocket协议才能通讯,例如下面这样

如果是gatewayWorker,监听部分代码类似

// websocket协议,这样客户端才能用ws://...来连。xxxx为端口不用改动
$gateway = new Gateway('websocket://0.0.0.0:xxxx');

如果是Workerman则是

// websocket协议,这样客户端才能用ws://...来连。xxxx为端口不用改动
$worker = new Worker('websocket://0.0.0.0:xxxx');

推荐:workerman教程


# workerman  # 客户端  # 服务端  # 报错  # 通讯协议  # 错了  # 使用了  # 要使  # 内网  # 的是  # 会有 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】  悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤  如何用低价快速搭建高质量网站?  bootstrap日历插件datetimepicker使用方法  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  Python自动化办公教程_ExcelWordPDF批量处理案例  Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  JavaScript中的标签模板是什么_它如何扩展字符串功能  Laravel集合Collection怎么用_Laravel集合常用函数详解  Laravel如何发送系统通知?(Notification渠道示例)  Laravel如何生成API文档?(Swagger/OpenAPI教程)  Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  Laravel如何处理和验证JSON类型的数据库字段  如何快速搭建支持数据库操作的智能建站平台?  成都网站制作公司哪家好,四川省职工服务网是做什么用?  在线制作视频的网站有哪些,电脑如何制作视频短片?  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  如何注册花生壳免费域名并搭建个人网站?  如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程  PHP 500报错的快速解决方法  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  Laravel如何使用模型观察者?(Observer代码示例)  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  Laravel如何使用Passport实现OAuth2?(完整配置步骤)  WEB开发之注册页面验证码倒计时代码的实现  如何在万网自助建站平台快速创建网站?  Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复  Laravel如何升级到最新版本?(升级指南和步骤)  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  如何用PHP快速搭建CMS系统?  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  电商网站制作价格怎么算,网上拍卖流程以及规则?  活动邀请函制作网站有哪些,活动邀请函文案?  laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法  js实现点击每个li节点,都弹出其文本值及修改  Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】  独立制作一个网站多少钱,建立网站需要花多少钱?  Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】  大连 网站制作,大连天途有线官网?  JS去除重复并统计数量的实现方法  Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层  如何选择PHP开源工具快速搭建网站?  Windows Hello人脸识别突然无法使用  如何在IIS中新建站点并配置端口与IP地址?