Я не могу 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, что есть три последовательных событий:
- ПОДКЛЮЧЕНИЕ
- Подписка оформлена
- О 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
, я не вижу вывод в консоли своего браузера.
Что я сделал
- Добавлено
Broadcast::routes();
вboot()
методомBroadcastServiceProvider
Добавлено
Broadcast::channel('Foo.Bar', function ($user, $FooBarId) {return true;});
вboot()
методомBroadcastServiceProvider
- У меня есть
config\broadcasting
правильно настроено с помощью приложения, ключа, секрета, драйвера, кластера, шифрования. (Я могу отправить событие из моего приложения к Pusher)
сторона отмечает
Я могу послать и слушать общественных событий с моим приложением. Только когда канал становится частным, я не могу прослушать (мое приложение может отправлять события на личном канале в Pusher).
Я подозреваю, что это, вероятно, связано с аутентификацией, потому что Broadcast::channel('Foo.Bar', callback)
в BroadcastServiceProvider
не выполняется.
Что мне здесь не хватает?
Я расстроен с этим, а также. Вы когда-нибудь находили что-нибудь? – Derek
@Derek См. Принятый ответ – Wistar