PHP Redis订阅不起作用

时间:2018-07-24 11:37:39

标签: php laravel redis

我正在为我的应用程序使用PHP Redis库。该代码的目的是添加一个侦听器以检测Redis中发生的任何更改。为此,我正在使用redis的PUB / SUB功能。

这是路由器文件中的代码。

  

路由器文件

Route::get('redis', function () {

     \Redis::publish('redisChat', 'Some message ...');

     \Redis::subscribe(['redisChat'],function($redis, $channel, $msg) {
           echo $channel . ' : ' . $msg;
           return array('result' => $msg);
     });

});

现在调用此路由,需要花费大量时间进行响应,之后它会向我显示错误"Error while reading line from the server. [tcp://127.0.0.1:6379]"

我也尝试了下面提到的方法,

  

路由器文件

 Route::get('redis', function () {

     \Redis::publish('redisChat', 'Some message ...');

     function f ($redis, $channel, $msg) {

          echo $channel . ' : ' . $msg;
          return array('result' => $msg);
     };

     \Redis::subscribe(['redisChat'] , 'f' );

});

但是现在出现此错误

Type error: Argument 2 passed to Illuminate\\Redis\\Connections\\Connection::subscribe() must be an instance of Closure, string given, called in /home/maintainyourwebs/public_html/staging/vendor/laravel/framework/src/Illuminate/Redis/RedisManager.php on line 130

在这方面的任何帮助将不胜感激。

0 个答案:

没有答案