真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Redis中如何將訂閱消息發(fā)到WebSocket客戶端

PHP 的redis擴(kuò)展是阻塞式 IO ,使用訂閱/發(fā)布模式時(shí),會(huì)導(dǎo)致整個(gè)進(jìn)程進(jìn)入阻塞。因此必須使用Swoole\Redis異步客戶端來實(shí)現(xiàn)。

創(chuàng)新互聯(lián)建站長(zhǎng)期為上千多家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為鐘祥企業(yè)提供專業(yè)的成都做網(wǎng)站、成都網(wǎng)站制作,鐘祥網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

實(shí)例代碼

$server = new swoole_websocket_server("0.0.0.0", 9501);
$server->on('workerStart', function ($server, $workerId) {
    $client = new swoole_redis;
    $client->on('message', function (swoole_redis $client, $result) use ($server) {
        if ($result[0] == 'message') {
            foreach($server->connections as $fd) {
                $server->push($fd, $result[1]);
            }
        }
    });
    $client->connect('127.0.0.1', 6379, function (swoole_redis $client, $result) {
        $client->subscribe('msg_0');
    });
});
$server->on('open', function ($server, $request) {
});
$server->on('message', function (swoole_websocket_server $server, $frame) {
    $server->push($frame->fd, "hello");
});
$server->on('close', function ($serv, $fd) {
});
$server->start();

實(shí)現(xiàn)過程

在進(jìn)程啟動(dòng)(onWorkerStart)時(shí)創(chuàng)建了Swoole\Redis客戶端,連接到Redis服務(wù)器

連接成功后,訂閱msg_0主題的消息

當(dāng)有新的message時(shí),Swoole\Redis會(huì)觸發(fā)onMessage事件回調(diào)

在這個(gè)回調(diào)函數(shù)中使用$server->connections遍歷服務(wù)器所有的連接,發(fā)送消息

以上就是實(shí)現(xiàn)從Redis中訂閱消息轉(zhuǎn)發(fā)到 WebSocket 客戶端的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!


標(biāo)題名稱:Redis中如何將訂閱消息發(fā)到WebSocket客戶端
標(biāo)題路徑:http://weahome.cn/article/gjjseg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部