搜索
首页php框架Workermanworkerman开发者必须知道的几个问题

workerman开发者必须知道的几个问题

Nov 26, 2019 pm 03:44 PM
workerman

下面由workerman教程栏目给大家介绍关于workerman开发者必须知道的几个问题,希望对需要的朋友有所帮助!

workerman开发者必须知道的几个问题

1、workerman不依赖apache或者nginx

workerman本身已经是一个类似apache/nginx的容器,只要PHP环境OK workerman就可以运行。

2、workerman是命令行启动的

启动方式类似apache使用命令启动(一般网页空间无法使用workerman)。启动界面类似下面

1.jpg

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扩展。

更多workerman使用教程请关注workerman教程栏目。

以上是workerman开发者必须知道的几个问题的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:workerman。如有侵权,请联系admin@php.cn删除

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境