欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

請問WebSocket的實時通信監控系統設計與實現要怎么實現

老白2年前10瀏覽0評論

請問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里.