5

我是 Laravel 广播的新手,目前我使用的是 5.4。当其他人创建新帖子时,我想根据他们的兴趣更新包含相关帖子的帐户仪表板,我正在使用私人频道。我成功地在当前登录的用户仪表板中广播了另一个用户发布的每个新帖子,我需要检查新帖子是否相关,如果不相关则广播,不要。

我想我可以通过过滤授权事件来实现,在BroadcastServiceProvider我写的里面。

public function boot(){
     Broadcast::routes();
     Broadcast::channel('discovery.post', function ($user) {
        return true;
     });
}

我已经阅读了我们可以将数据与通道名称一起传递的文档,例如

Broadcast::channel('discovery.post.{postId}', function ($user, $postId) {
    // get post category, tags, etc compare with user interest 
    return $isInterest;
});

但是这种方法也必须在 laravel Echo 中传递新的帖子 ID

window.Echo.private('discovery.post.{how-i-get-this-id?}')
   .listen('NewPostDashboard', (data) => {
      // add new update to dom
   }); 

我该如何解决这个问题,我想保留我的频道名称discovery.post,我只想发送给有相关兴趣的用户,我需要 Post 实例来检查登录用户是否对这篇文章感兴趣。

在否决我之前让我知道我的问题是否不清楚。谢谢你。

4

0 回答 0