GatewayWorker

三个类: Register、Gateway、BusinessWorker

工作原理:

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