2016-12-27 109 views
3

我无法登录listen to an event in a private channel。不过,我可以听公众频道。Laravel Echo无法订阅Pusher私人频道

问题

这工作:

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

我可以推调试控制台看到有连续的三个事件:

  1. CONNECTION
  2. SUBSCRIBED
  3. Ø CCUPIED

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

然而,这不起作用:

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

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

我的BroadcastServiceProvider

  • boot()方法所做的

    1. 新增Broadcast::routes();BroadcastServiceProvider
    2. 新增Broadcast::channel('Foo.Bar', function ($user, $FooBarId) {return true;});boot()方法有一个queue working with supervisor

    3. 我的config\broadcasting设置与应用程序,密钥,秘密,驱动程序,集群,加密正确。 (我可以从我的应用程序发送事件推)

    旁注

    我可以发送和听与我的应用程序的公共事件。只有当频道变得私人,我不能(我的应用程序可以发送私人频道上的事件到推者)。

    我怀疑它可能与验证有关,因为在BroadcastServiceProvider没有被执行。

    我在这里错过了什么?

  • +0

    我很沮丧与这一点。你有没有找到任何东西? – Derek

    +0

    @Derek查看接受的答案 – Wistar

    回答

    2

    config\app,你需要去掉下面行的

    App\Providers\BroadcastServiceProvider::class 
    

    documentation