无法订阅Redis的通道Laravel 5.2
问题描述:
我下面Laravel办公室Redis的指导,但我有一些问题 https://laravel.com/docs/5.2/redis#pubsub无法订阅Redis的通道Laravel 5.2
当我运行在创建命令后 - :控制台“> PHP工匠Redis的订阅”我得到以下错误
[Symfony\Component\Console\Exception\CommandNotFoundException]
There are no commands defined in the "redis" namespace.
我无法听Redis Chanel。
Redis Publish Channel方法工作正常。检查这一点。 在控制台中,我输入“ - > redis-cli”,然后“订阅mychannel” 在刷新浏览器时,我在控制台中获取发布数据。
我无法通过Laravel订阅。
我也使用外卡
Route::get('/subscribe', function()
{
Redis::psubscribe(['*'], function($message, $channel) {
echo $message;
});
});
但浏览器保持装载和我没有得到任何数据尝试。 我也试图使在控制器的方法
public function subscribeChannel()
{
$redis = Redis::Connection();
$redis->subscribe(['channel'], function($message) {
echo $message;
});
}
这subscribeChannel方法给了我下面的错误
ErrorException in StreamConnection.php line 390:
strlen() expects parameter 1 to be string, array given
我在配置/ database.php中配置如下因素
'redis' => [
'cluster' => false,
'default' => [
'host' => env('REDIS_HOST', 'localhost'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => 0,
'read_write_timeout' => 0
],
],
寻找帮助 谢谢
答
Redis :: connection &然后订阅不适用于Laravel 5.2。
您可以为同一使用下面的命令:
Redis::subscribe(['user_online_offline'], function ($message) {
echo $message;
});
如果你要使用同一以下命令,然后就可以使用其他连接:
Redis::subscribe(['user_online_offline'], function ($message) {
echo $message;
}, $connection = 'socket');