php redis訂閱發佈

發佈端publish.php

<?php

$channelName = "testPubSub";//頻道1
$channelName2 = "testPubSub2";//頻道2
try {
    $redis = new Redis();
    $redis->connect('127.0.0.1', 6379);
    for ($i=0;$i<5;$i++){
        $data = array('key' => 'key'.$i, 'data' => 'testmessage');
        $ret = $redis->publish($channelName2, json_encode($data));
        var_dump($ret);
    }
} catch (Exception $e){
    echo $e->getMessage();
}

訂閱端subscribe.php

<?php
set_time_limit(0);
//設置socket連接超時時間
ini_set('default_socket_timeout', -1);
//聲明測試頻道名稱
$channelName = "testPubSub";
$channelName2 = "testPubSub2";
try {
    $redis = new Redis();
    //建立一個長鏈接
    $redis->pconnect('127.0.0.1', 6379);
    //阻塞獲取消息
    $redis->subscribe(array($channelName, $channelName2), function ($redis, $chan, $msg){
        echo  "channel:".$chan.",message:".$msg."\n";
    });
} catch (Exception $e){
    echo $e->getMessage();
}
  • 命令行運行訂閱端

php subscribe.php

訪問發佈端

訂閱端接收信息
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章