workerman开发者必须知道的几个问题
1、workerman不依赖apache或者nginx
workerman本身已经是一个类似apache/nginx的容器,只要PHP环境OK workerman就可以运行。
2、workerman是命令行启动的
启动方式类似apache使用命令启动(一般网页空间无法使用workerman)。启动界面类似下面
3、长连接必须加心跳
长连接必须加心跳,长连接必须加心跳,长连接必须加心跳,重要的话说三遍。
长连接长时间不通讯肯定会被防火墙干掉而断开。不加心跳的长连接应用就等着老板KO你吧。
4、客户端和服务端协议一定要对应才能通讯
这个是开发者非常常见的问题。例如客户端是用websocket协议,服务端必须也是websocket协议(服务端new Worker('websocket://0.0.0.0...'))才能连得上,才能通讯。
不要尝试在浏览器地址栏访问websocket协议端口,不要尝试用webscoket协议访问裸tcp协议端口,协议一定要对应。
这里的原理类似如果你要和英国人交流,那么要使用英语。如果要和日本人交流,那么要使用日语。这里的语言就类似与通许协议,双方(客户端和服务端)必须使用相同的语言才能交流,否则无法通讯。
5、连接失败可能的原因
刚开始使用workerman时很常见的一个问题是客户端连接服务端失败。 原因一般如下:
1、服务器防火墙(包括云服务器安全组)阻止了连接 (50%几率是这个)
2、客户端和服务端使用的协议不一致 (30%几率)
3、ip或者端口写错了 (15%的几率)
4、服务端没启动
6、不要使用exit die sleep语句
业务执行exit die语句会导致进程退出,并显示WORKER EXIT UNEXPECTED错误。当然,进程退出了会立刻重启一个新的进程继续服务。如果需要返回,可以调用return。sleep语句会让进程睡眠,睡眠过程中不会执行任何业务,框架也会停止运行,会导致该进程的所有客户端请求都无法处理。
7、业务代码里不要有死循环
业务代码里不要有死循环,否则会导致控制权无法交还给workerman框架,导致无法接收处理其它客户端消息。
8、改代码要重启
workerman是常驻内存的框架,改代码要重启workerman才能看到新代码的效果。
9、长连接应用建议用GatewayWorker框架
很多开发者使用workerman是要开发长连接应用,例如即时通讯、物联网等,长连接应用建议直接使用GatewayWorker框架,它专门在workerman的基础上再次封装,做起长连接应用后台更简单、更易用。
10、支持更高并发
如果业务并发连接数超过1000同时在线,请务必优化linux内核,并安装event扩展或者libevent扩展。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tangbhkeg
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01