您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
workerman-redis組件-subscribe
发布时间:2021-12-25 19:39:05编辑:雪饮阅读()
subscribe
用于订阅给定的一个或多个频道的信息。
注意:subscribe回调函数有3个参数($channel, $message, $redis)
当$redis实例调用pSubscribe或subscribe接口后,当前实例再调用其它方法将被忽略。(就很坑了)
實例:
<?php
use Workerman\Worker;
use Workerman\Redis\Client;
use Workerman\Connection\TcpConnection;
use Workerman\Timer;
require_once __DIR__ . '/vendor/autoload.php';
$worker = new Worker('http://0.0.0.0:6161');
$worker->onWorkerStart = function() {
};
$worker->onMessage = function(TcpConnection $connection, $data) {
$redis = new Client('redis://127.0.0.1:6379');
$redis->auth("xy220807",function($result){
var_dump($result);
});
$redis2 = new Client('redis://127.0.0.1:6379');
$redis2->auth("xy220807",function($result){
var_dump($result);
});
$redis->subscribe(['news', 'blog'], function ($channel, $message) use($connection){
$str= "$channel, $message"; // news, news content
$connection->send($str);
});
Timer::add(5, function () use ($redis2){
$redis2->publish('news', 'news content');
});
};
Worker::runAll();
實例運行並有http客戶端訪問時:
[root@localhost www.fpm.com]# /usr/local/php734/bin/php channelServer.php start
Workerman[channelServer.php] start in DEBUG mode
----------------------------------------- WORKERMAN -----------------------------------------
Workerman version:4.0.22 PHP version:7.3.4
------------------------------------------ WORKERS ------------------------------------------
proto user worker listen processes status
tcp root none http://0.0.0.0:6161 1 [OK]
---------------------------------------------------------------------------------------------
Press Ctrl+C to stop. Start success.
bool(true)
bool(true)
http客戶端訪問:
[root@localhost ~]# elinks http://127.0.0.1:6161 --dump
news, news content
关键字词:workerman,redis,subscribe