Вам необходимо расширить Illuminate\Broadcasting\BroadcastManager\BroadcastManager
с помощью поставщика услуг. Это очень похоже на добавление пользовательского охранника, но вот супер простой пример:
Создание нового поставщика услуг, я назвал руднику BroadcastServiceProvider
, и добавьте следующий к boot
методе:
/**
* Bootstrap the application services.
*
* @param BroadcastManager $broadcastManager
*/
public function boot(BroadcastManager $broadcastManager)
{
$broadcastManager->extend('slack', function (Application $app, array $config) {
return new Slack;
});
}
All то есть добавляет ваш широковещательный драйвер (класс, который реализует интерфейс Illuminate\Contracts\Broadcasting\Broadcaster
, который в моем примере равен Slack
) менеджеру вещания с именем slack
(вы можете позвонить своему вещателю, что угодно).
Обязательно добавьте этого поставщика услуг в ваш конфигурационный файл app.php
.
Затем в конфигурационном файле broadcasting.php
добавьте новый драйвер в качестве подключения. Шахта выглядит примерно так:
'connections' => [
'pusher' => [
'driver' => 'pusher',
'key' => env('PUSHER_KEY'),
'secret' => env('PUSHER_SECRET'),
'app_id' => env('PUSHER_APP_ID'),
],
'redis' => [
'driver' => 'redis',
'connection' => 'default',
],
'log' => [
'driver' => 'log',
],
'slack' => [
'driver' => 'slack'
]
],
Вы заметите, что имя драйвера такое же, как то, что в поставщика услуг extend
вызова. Вы можете вызвать соединение, которое вам действительно нравится, и вы можете добавить дополнительные параметры, которые будут переданы поставщику услуг, если они вам понадобятся.
После этого ваша пользовательская вещательная компания зарегистрирована и готова к использованию!
Это больше не работает. $ app печально передано BroadcastManager :: __ construct(). –
ОК, мой плохой. Это не работает в Люмене. Вероятно, он все еще работает в Ларавеле. –