一段时间以来,这一直是一个长期存在的问题,在我开始之前,这是我尝试过的以及寻找解决方案的地方。
我尝试过的几件事
我已确保我的集群对于我正在使用的应用程序是正确的:
https
://laracasts.com/discuss/channels/laravel/pusher-is-not-receiving-my-message?page=1
我的集群是eu
我已经尝试了所有命名空间的变体:
https
.App.Events.DefaultPusherEvent
: //laracasts.com/discuss/channels/laravel/echo-broadcast-event-listener-not-being-triggeredApp\Events\DefaultPusherEvent
等.DefaultPusherEvent
...
我的情景
因此,我正在尝试使用 Laravel 和 Pusher 来掌握实时更新,以便最终我可以实现实时通知以及我们将来需要的任何其他内容。
根据 Laravel 文档,我能够向我的推送应用程序广播。
所以这一切都很好,没有问题,我唯一的问题实际上是尝试使用 Laravel 的回声甚至 Pusher 的香草代码来消费这个事件。
我以前遇到过这个问题,我的解决方案是不使用私人频道(因为它们根本不适合我)。但现在我需要这个功能。
进步
在发布这个问题之前,我重新安装了 Laravel 并再次安装,但结果是一样的。我什至制作了一个登录系统,以确保不是因为我的用户不是因为我的用户没有登录到应用程序。
ListenForPusherEvents(){
Echo.private(`datalev`)
.listen('DefaultPusherEvent', (e) => {
console.log(e);
console.log('Something');
});
}
我也没有控制台错误,因为我已经使用 pushers'broadcasting/auth'
目录对用户进行了身份验证
这是验证私人频道用户的代码。
public function PusherAuthentication(Request $request)
{
$pusher = new Pusher(env('PUSHER_APP_KEY'), env('PUSHER_APP_SECRET'), env('PUSHER_APP_ID'), ['cluster' => 'eu']);
$pusher->socket_auth($request->input('channel_name'), $request->input('socket_id'));
}