请问WebSocket的实时通信监控系统设计与实现要怎么实现

更新时间:01-23 教程 由 情の殇 分享

请问WebSocket的实时通信监控系统设计与实现要怎么实现?

你可以尝试:

在WebSocket事件如message的回调函数里用$serv->send($fd_TCP, $json)发送消息给TCP连接.

在TCP事件如receive的回调函数里用$serv->push($fd_ws, $json)推送消息给WebSocket连接.

上述操作在单机上可能可行,但在多机分布式上不可用.

所以可以考虑使用一个中间件作为跨服务器/跨协议通信的介质.

比如Redis提供的PubSub消息发布订阅功能就是一个简单易用的消息传递的中间件.

工作流程如下:

WebSocket连接建立时,用Swoole内置的Redis客户端异步订阅(subscribe)一个频道,频道名为:

swoole:user:1:channel

其中1表示连接所属的用户编号(保证唯一).

TCP连接建立时,同样也用Swoole内置的Redis客户端异步订阅(subscribe)一个频道,频道名为:

swoole:user:2:channel

两个不同协议的连接通信时,就是发布(publish)信息到指定频道:

$swoole_redis->publish($user_channel, $json);

而处理收到信息的逻辑则写在订阅(subscribe)操作的回调函数message里.

声明:关于《请问WebSocket的实时通信监控系统设计与实现要怎么实现》以上内容仅供参考,若您的权利被侵害,请联系13825271@qq.com
本文网址:http://www.25820.com/tutorial/14_2179184.html