GatewayWorker利用经典的Gateway和Worker进程模型。Gateway进程卖力坚持客户端连接,并转发客户真个数据给BusinessWorker进程处理,BusinessWorker进程卖力处理实际的业务逻辑(默认调用Events.php处理业务),并将结果推送给对应的客户端。Gateway做事和BusinessWorker做事可以分开支配在不同的做事器上,实现分布式集群。
GatewayWorker供应非常方便的API,可以全局广播数据、可以向某个群体广播数据、也可以向某个特定客户端推送数据。合营Workerman的定时器,也可以定时推送数据。
Workerman可以看做是一个纯粹的socket类库,可以开拓险些所有的网络运用,不管是TCP的还是UDP的,长连接的还是短连接的。Workerman代码精简,功能强大,利用灵巧,能够快速开拓出各种网络运用。同时Workerman比较GatewayWorker也更底层,须要开拓者有一定的多进程编程履历。

由于绝大多数开拓者的目标是基于Workerman开拓TCP长连接运用,而长连接运用做事端有很多共同之处,例如它们有相同的进程模型以及单发、群发、广播等接口需求。以是才有了GatewayWorker框架,GatewayWorker是基于Workerman开拓的一个TCP长连接框架,实现了单发、群送、广播等长连接必用的接口。GatewayWorker框架实现了Gateway Worker进程模型,天然支持分布式多做事器支配,扩容缩容非常方便,能够应对海量并发连接。可以说GatewayWorker是基于Workerman实现的一个更完善的专门用于实现TCP长连接的项目框架。
用GatewayWorker还是Workerman?如果你的项目是长连接并且须要客户端与客户端之间通讯,建议利用GatewayWorker。
短连接或者不须要客户端与客户端之间通讯的项目建议利用Workerman。GatewayWorker不支持UDP监听,以是UDP做事请选择Workerman。
如果你有多进程socket编程履历的人,喜好定制自己的进程模型,可以选择Workerman。
Linux系统快速开始(从一个精简的谈天demo开始)1、下载demo(文章后面有链接)
2、命令走运行 unzip GatewayWorker.zip 解压缩GatewayWorker.zip
3、命令走运行 cd GatewayWorker 进入GatewayWorker目录
4、命令走运行 php start.php start 启动GatewayWorker
5、新开几个命令行窗口运行 telnet 127.0.0.1 8282,输入任意字符即可谈天(非本机测试请将127.0.0.1更换成实际ip)。
把稳:如果telnet超时请检讨做事器防火墙(iptables)
Windows系统快速开始(从一个精简的谈天demo开始)1、下载demo
2、解压到任意位置
3、进入GatewayWorker目录
4、双击start_for_win.bat启动。
5、新开几个cmd命令行窗口运行 telnet 127.0.0.1 8282,输入任意字符即可谈天(非本机测试请将127.0.0.1更换成实际ip,)。
设置php环境变量workerman的在Windows下与Linux下差异1、win版本单个进程只支持200+个连接(最多255个);
2、win版本count属性无效,全部为单进程
3、不支持start stop reload restart status命令
4、cmd命令行启动,后面可接多个文件,例如 php start_web.php start_gateway.php start_worker.php
5、无法守护进程,cmd窗口关掉后做事即停滞
6、每个启动文件只能实例化一个容器(Worker/WebServer/Gateway/BusinessWorker),须要实例化多个容器时
须要拆成多个文件,例如 start_web.php start_gateway.php start_worker.php 分别初始化web gateway worker
Windows版本workerman的启动与停滞cmd命令行中运行 php your_file.php(把稳后面可以接多个文件)
把稳windows版本没有stop、reload、restart、status命令,启动时直接运行 php 文件.php 即可,停滞运行按ctrl+c
举例:(Windows***由于Windows链接数限定,开2个现成的话,须要配置2个bat文件。防止显示中文乱码。路径:打算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor
添加主键:autrun 键值:chcp 65001>nul
批处理文件内容:
chcp 65001
php Applications\MeterApp2\start_register.php Applications\MeterApp2\start_gateway.php Applications\MeterApp2\start_businessworker.php
pause
修正2个线程的监控端口:start_gateway.php
参考文件链接:https://www.workerman.net/