我无法listen to an event in a private channel。但是,我可以听公共频道。
问题
这有效:
Echo.channel('Foo.Bar')
.listen('MyEvent', (e) => {
console.log('It worked!');
});
我可以在Pusher Debug Console中看到有三个连续的事件:
另外,如果我发送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
未被执行。
我在这里缺少什么?
答案 0 :(得分:2)