Laravel Echo 无法订阅 Pusher 私人频道

Wis*_*tar 5 laravel pusher laravel-5.3 laravel-echo

我无法在私人频道中收听事件。但是,我可以收听公共频道。

问题

这有效:

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

我可以在 Pusher Debug Console 中看到有三个连续的事件:

  1. 联系
  2. 已订阅
  3. 占据

另外,如果我发送Channel: Foo.Bar; Event: App\Events\MyEvent,我可以在浏览器控制台中看到输出。

但是,这不起作用:

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

我在 Pusher 调试控制台中没有看到订阅。显然,如果我发送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. 有一个与 supervisor 一起工作队列

  4. config\broadcasting使用应用程序、密钥、机密、驱动程序、集群、加密正确设置我的设置。(我可以从我的应用程序向 Pusher 发送事件)

旁注

我可以使用我的应用程序发送和收听公共事件。只有当频道变为私有时,我才能收听(我的应用程序可以将私有频道上的事件发送到 Pusher)。

我怀疑,因为它可能与认证Broadcast::channel('Foo.Bar', callback)BroadcastServiceProvider没有被执行。

我在这里缺少什么?

Wis*_*tar 5

在 中config\app,您需要取消注释以下行

App\Providers\BroadcastServiceProvider::class
Run Code Online (Sandbox Code Playgroud)

查看文档