2016-12-27 2 views
3

Я не могу listen to an event in a private channel. Однако я могу слушать публичный канал.Laravel Echo не может подписаться на Pusher частный канал

Проблема

Это работает:

Echo.channel('Foo.Bar') 
    .listen('MyEvent', (e) => { 
     console.log('It worked!'); 
    }); 

я могу видеть в Pusher Debug Console, что есть три последовательных событий:

  1. ПОДКЛЮЧЕНИЕ
  2. Подписка оформлена
  3. О CCUPIED

Плюс, если я отправлю Channel: Foo.Bar; Event: App\Events\MyEvent, я могу видеть вывод в консоли своего браузера.

Однако, это не работает:

Echo.private('Foo.Bar') 
    .listen('MyEvent', (e) => { 
     console.log('It privately worked!'); 
    }); 

Я не вижу подписку в Pusher Debug Console. Очевидно, если я отправлю Channel: private-Foo.Bar; Event: App\Events\MyEvent, я не вижу вывод в консоли своего браузера.

Что я сделал

  1. Добавлено Broadcast::routes(); в boot() методом BroadcastServiceProvider
  2. Добавлено Broadcast::channel('Foo.Bar', function ($user, $FooBarId) {return true;}); в boot() методом BroadcastServiceProvider

  3. Есть queue working with supervisor.

  4. У меня есть config\broadcasting правильно настроено с помощью приложения, ключа, секрета, драйвера, кластера, шифрования. (Я могу отправить событие из моего приложения к Pusher)

сторона отмечает

Я могу послать и слушать общественных событий с моим приложением. Только когда канал становится частным, я не могу прослушать (мое приложение может отправлять события на личном канале в Pusher).

Я подозреваю, что это, вероятно, связано с аутентификацией, потому что Broadcast::channel('Foo.Bar', callback) в BroadcastServiceProvider не выполняется.

Что мне здесь не хватает?

+0

Я расстроен с этим, а также. Вы когда-нибудь находили что-нибудь? – Derek

+0

@Derek См. Принятый ответ – Wistar

ответ

2

В config\app, необходимо раскомментировать следующую строку

App\Providers\BroadcastServiceProvider::class 

см documentation

Смежные вопросы