gpt4 book ai didi

Laravel Livewire Echo 配置

转载 作者:行者123 更新时间:2023-12-05 01:33:26 31 4
gpt4 key购买 nike

我在我的 Laravel 8 应用程序上设置了一个带有 Pusher 和 Echo 的通知系统。它工作正常,我可以使用

在 VanillaJS 中检索通知事件
window.Echo.private('App.Models.User.' + User.id)
.notification((notification) => {
if (notification.type === 'App\\Notifications\\JobLiked') {
let count = document.getElementById('count');
let number = count.innerHTML;
number++;
count.innerHTML = number;
}
});

但现在我想使用 Livewire 监听器来触发我的功能,然后我设置:

public function getListeners()
{
return [
"echo-private:App.Models.User.{$this->authId},NotificationSent" => 'notifyNewJobLiked',
];
}

但似乎没有任何效果,我也没有收到任何错误消息。您是否知道可能发生的情况?

非常感谢! :)

最佳答案

尝试使用以下特定事件名称配置您的监听器:

public function getListeners()
{
return [
"echo-private:App.Models.User.{$this->authId},.Illuminate\\Notifications\\Events\\BroadcastNotificationCreated" => 'notifyNewJobLiked',
];
}

由于您使用 Laravel 通知来触发广播而不是可广播事件,因此触发时的事件名称默认为 Illuminate\\Notifications\\Events\\BroadcastNotificationCreated

在 Echo 中,有两种方法可以监听传入的消息:notificationlisten。它与您的 vanilla js 一起使用的原因是您使用的是 notification 方法,而 livewire 事件监听器仅适用于 Echo 的 listen,它需要调用的名称事件。

如果您使用的是推送器,您可以在推送器调试控制台中看到调用事件的名称。

同时注意并在命名空间事件前面添加一个点,如 documentation 中所述.

关于Laravel Livewire Echo 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64812791/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com