StimmerLove 2018-11-30 05:42 采纳率: 0%
浏览 1146

redis subscribe无法使用

这是Pubsub的类

 class Pubsub {
    private $redis;
    public function __construct(){
        $redis = new \Redis();
        $redis->connect('10.127.8.188',6379);
        $this->redis = $redis;
    }

    public function callbak($redis,$channel_name,$msg){
        var_dump(json_encode($redis));
        var_dump($channel_name);
        var_dump($msg);
    }

    public function subChannel($channels){
        function callbak($redis,$channel_name,$msg){
            var_dump(json_encode($redis));
            var_dump($channel_name);
            var_dump($msg);
        }
        $this->redis->subscribe($channels,[$this->redis,'callbak']);
    }

    public function pubMsg($channel,$msg){
        $this->redis->publish($channel,$msg);
    }
}

下面是使用时的代码

 public function pubAction(){
        $redis = new Pubsub();
        $message = '344';
        $channel = 'sub1';
        $redis->pubMsg($channel,$message);
 }
 public function subAction(){
        $redis = new Pubsub();
        $redis->subChannel(array('sub1','sub2','job1','job2'));
 }

问题是发布信息之后,订阅者无法接收到信息,
报错信息:
Redis::subscribe() expects parameter 2 to be a valid callback, class 'Redis' does not have a method 'callbak'
有大神吗,帮忙解决一下

  • 写回答

1条回答

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-10-25 19:31
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记