【问题标题】:Laravel Echo cannot subscribe to Pusher private channelLaravel Echo 无法订阅 Pusher 私人频道
【发布时间】:2017-05-12 04:58:00
【问题描述】:

我无法listen to an event in a private channel。但是,我可以收听公共频道。

问题

这行得通:

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

我可以在 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!');
    });

我在 Pusher 调试控制台中看不到订阅。显然,如果我发送Channel: private-Foo.Bar; Event: App\Events\MyEvent,我在浏览器控制台中看不到输出。

我做了什么

  1. BroadcastServiceProviderboot() 方法中添加了Broadcast::routes();
  2. 已添加Broadcast::channel('Foo.Bar', function ($user, $FooBarId) {return true;});BroadcastServiceProviderboot()方法中

  3. 有一个queue working with supervisor

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

旁注

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

我怀疑这可能与身份验证有关,因为BroadcastServiceProvider 中的Broadcast::channel('Foo.Bar', callback) 没有被执行。

我在这里错过了什么?

【问题讨论】:

  • 我也对此感到沮丧。你有什么发现吗?
  • @Derek 查看已接受的答案

标签: laravel laravel-5.3 pusher laravel-echo


【解决方案1】:

config\app中,需要取消注释下面一行

App\Providers\BroadcastServiceProvider::class

documentation

【讨论】:

    猜你喜欢
    • 2020-11-22
    • 2014-07-15
    • 2019-06-04
    • 2021-03-09
    • 2018-01-24
    • 2017-05-26
    • 1970-01-01
    • 1970-01-01
    • 2020-01-15
    相关资源
    最近更新 更多