GatewayWorker
三个类: Register、Gateway、BusinessWorker
工作原理:
- Register、Gateway、BusinessWorker 三个进程启动
- Gateway、BusinessWorker 进程启动后向 Register 服务进程发起长链接注册自己
- Register 服务收到 Gateway 的注册后,把所有 Gateway 的通讯地址保存在内存中
- Register 服务收到 BusinessWorker 的注册后,把内存中所有的 Gateway 的通讯地址发给 BusinessWorker
- BusinessWorker 进程得到所有的 Gateway 内部通讯地址后尝试连接 Gateway
- 如果运行过程中有新的 Gateway 注册到 Register(一般是分布式部署加机器),则将新的 Gateway 内部通讯地址列表广播给所有 BusinessWoker,BusinessWorker 不在连接下线的 Gateway
- 如果有 Gateway 下线,则 Register 服务会收到通知,会将对应的内部通讯地址删除,然后广播新的内部通讯地址列表给所有 BusinessWorker,BusinessWorker 不再连接下线的 Gateway
- 至此 Gateway 与 BusinessWorker 通过 Register 建立起长链接
- 客户端的事件及数据全部都由 Gateway 转发给 BusinessWorker 处理,BusinessWorker 默认调用 Events.php 中的 onConnect、onMessage、onClose 处理业务逻辑
- BusinessWorker 的业务逻辑全部咋 Events.php 中