Workerman多进程时,怎么向别的进程管理的连接发消息?

我现在要做一个远程控制设备的程序,整体结构如下:

设备1,设备2,……
| /
服务器
| \
控制台1,控制台2,……

每台设备可以有多个控制台,每个控制台只能控制一台设备。

目前服务器采用 Workerman 的 WebSocket 协议把控制台和设备连起来。我的问题是,当多个 Worker 进程时,如果控制台和设备的连接不在同一个进程里,比如,设备1 发生状况时,向所有关注它的控制台发出通知,但可能有部分控制台在另一个进程里,怎么通知它们呢?

谢谢!

阅读 3.1k
1 个回答

最佳实践应该是引入 MQ(Message Queue),通过订阅消息来实现你的需求,这样可以跟具体的实现解耦。

差一点儿的话你就得搞进程通讯来。像 WorkerMan 本身提供了 Channel 组件可以用于进程间通信。如果要跟操作系统强耦合的话,也可以用 Linux 上提供的共享内存之类的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题