Laravel Echo 未收到 Pusher 事件

Laravel Echo not receiving Pusher event

我在使用 Laravel 向 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 事件?

这是一个命名空间问题。 Laravel documentation 解释一下。

Echo will automatically assume the events are located in the App\Events namespace

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

Event: App\Events\my-event