4

我在使用 Laravel Echo 收听 Pusher 频道时遇到问题。我无法在浏览器中得到任何响应(没有控制台日志)。

在我的 bootstrap.js 中,我得到了。

import Echo from "laravel-echo"

window.Echo = new Echo({
     broadcaster: 'pusher',
     key: 'myPusherAppKey',
     cluster: 'mt1', //My app is US-EAST
     encrypted: true
});

我使用浏览器控制台并输入:

Echo.channel('my-channel')
    .listen('my-event', (e) => {
        console.log(e);
    });

我可以从 Pusher 调试控制台看到

  1. 连接我的应用程序
  2. 订阅我的频道
  3. 占用我的频道

然后我使用 Pusher 调试控制台发送默认事件:

Channel: my-channel 
Event: my-event
Data: {
       "name": "John",
       "message": "Hello"
       }

但是,我的浏览器控制台中没有任何输出

如果我在浏览器控制台中进一步输入:

Echo.leave('my-channel');

我可以从 Pusher 调试控制台看到

  1. 取消订阅我的频道
  2. 已腾空我的频道

如何让 Laravel Echo 收听 Pusher 事件?

4

1 回答 1

15

这是一个命名空间问题。Laravel 文档对此进行了解释。

Echo 将自动假定事件位于 App\Events 命名空间中

因此,必须在 Pusher 调试控制台中更改事件名称,如下所示:

Event: App\Events\my-event
于 2016-12-26T23:24:08.853 回答