溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

【php-redis】pub/sub 公開和訂閱

發(fā)布時間:2020-07-12 14:36:04 來源:網(wǎng)絡 閱讀:1146 作者:756643920 欄目:web開發(fā)

網(wǎng)上大多的寫法大多直接在終端里的寫法,沒有一個完整的瀏覽器直觀的例子,直接上代碼:

訂閱

ini_set('default_socket_timeout', -1);
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->auth('lizongying');
$channel = 'msg';
$redis->subscribe(array($channel), 'callback');

function callback($redis, $channel, $message)
{
    if (ob_get_level() == 0) {
        ob_start();
    }
    echo str_pad(' ', 1024 * 8);
    echo date('Y-m-d H:i:s');
    var_dump($message);
    flush();
    ob_flush();
    ob_end_flush();
}

公開

$redis = new Redis();
$redis->connect('127.0.0.1',6379);
$redis->auth('lizongying');
$channel = 'msg';  // channel
$msg = '33'; // msg
$redis->publish($channel, $msg);
echo date('Y-m-d H:i:s');
var_dump($channel.$msg);

幾個點:

1 在命名空間內(nèi)

new \Redis();

2 如果有密碼

$redis->auth('lizongying');

3 保證socket不超時

ini_set('default_socket_timeout', -1);

4 及時刷新 測試用的chrome buffer長度加到了1024*8才起作用 一些教程里是1024 或者 4096

    if (ob_get_level() == 0) {
        ob_start();
    }
    echo str_pad(' ', 1024 * 8);
    echo date('Y-m-d H:i:s');
    var_dump($message);
    flush();
    ob_flush();
    ob_end_flush();

保健食品注冊咨詢專家

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI