2016-11-10 5 views
0

Я следую 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 работает отлично. Чтобы проверить это. В консоли я набрал «-> 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 является folowing

'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 
     ], 
    ], 

Вам нужна помощь спасибо

ответ

0

Redis :: подключение & затем подписаться не работает для Laravel 5.2.

Вы можете использовать следующую команду для того же:

Redis::subscribe(['user_online_offline'], function ($message) { 
     echo $message; 
}); 

Если вы хотите использовать другое соединение для того же, то вы можете использовать следующую команду:

Redis::subscribe(['user_online_offline'], function ($message) { 
    echo $message; 
}, $connection = 'socket'); 
Смежные вопросы