首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
GatewayWorker介绍
GatewayWorker特点
GatewayWorker工作原理
运行聊天室demo
与后端开发框架整合
Register类的使用
Gateway类的使用
BusinessWorker类使用
Events类使用
业务类Gateway类使用
群发消息
单发消息
断开客户端连接
判断用户在线状态
绑定与解绑用户
获取用户相关id
用户群组管理
用户session管理
统计相关方法
Laravel+GatewayWorker
当前位置:
首页>>
技术小册>>
Workerman高性能框架-GatewayWorker
小册名称:Workerman高性能框架-GatewayWorker
**工作原理** - Register、Gateway、BusinessWorker进程启动 - Gateway、BusinessWorker进程启动后向Register服务进程发起长连接注册自己 - Register服务收到Gateway的注册后,把所有Gateway的通讯地址保存在内存中 - Register服务收到BusinessWorker的注册后,把内存中所有的Gateway的通讯地址发给BusinessWorker - BusinessWorker进程得到所有的Gateway内部通讯地址后尝试连接Gateway - 如果运行过程中有新的Gateway服务注册到Register(一般是分布式部署加机器),则将新的Gateway内部通讯地址列表将广播给所有BusinessWorker,BusinessWorker收到后建立连接 - 如果有Gateway下线,则Register服务会收到通知,会将对应的内部通讯地址删除,然后广播新的内部通讯地址列表给所有BusinessWorker,BusinessWorker不再连接下线的Gateway - 至此Gateway与BusinessWorker通过Register已经建立起长连接 - 客户端的事件及数据全部由Gateway转发给BusinessWorker处理,BusinessWorker默认调用Events.php中的onConnect onMessage onClose处理业务逻辑。 - BusinessWorker的业务逻辑入口全部在Events.php中,包括onWorkerStart进程启动事件(进程事件)、onConnect连接事件(客户端事件)、onMessage消息事件(客户端事件)、onClose连接关闭事件(客户端事件)、onWorkerStop进程退出事件(进程事件) **Gateway/Worker 的进程模型** ![](/uploads/images/20230519/bacd2a6138ad20bbab427958d9e5e832.png) **特点:** 从图上我们可以看出Gateway负责接收客户端的连接以及连接上的数据,然后Worker接收Gateway发来的数据做处理,然后再经由Gateway把结果转发给其它客户端。每个客户端都有很多的路由到达另外一个客户端,例如client⑦与client①可以经由蓝色路径完成数据通讯 **优点:** - 可以方便的实现客户端之间的通讯 - Gateway与Worker之间是基于socket长连接通讯,也就是说Gateway、Worker可以部署在不同的服务器上,非常容易实现分布式部署,扩容服务器 - Gateway进程只负责网络IO,业务实现都在Worker进程上,可以reload Worker进程,实现在不影响用户的情况下完成代码热更新。 **适用范围:** 适用于客户端与客户端需要实时通讯的项目。
上一篇:
GatewayWorker特点
下一篇:
运行聊天室demo
该分类下的相关小册推荐:
Laravel(10.x)从入门到精通(二)
全面构建Magento2电商系统
PHP8入门与项目实战(4)
Yii2框架从入门到精通(上)
Laravel(10.x)从入门到精通(十四)
Laravel(10.x)从入门到精通(六)
HTTP权威指南
PHP合辑5-SPL标准库
PHP合辑4-字符串函数
PHP8入门与项目实战(5)
Laravel(10.x)从入门到精通(十二)
Laravel(10.x)从入门到精通(七)