首页 > 解决方案 > 如何让用户根据他们所在的组订阅推送频道?

问题描述

每个用户都放在一个组中,我的网站有 5 个组。我只希望将 X 组中的事件广播给 X 组中的客户。如何创建这样的频道并让客户订阅它们?

Pusher.logToConsole = true;

        var pusher = new Pusher('ec160cc0a1ca15e463f4', {
            cluster: 'eu',
            forceTLS: true
        });

        var channel = pusher.subscribe("{{Player::where('user_id', Auth::user()->id)->first()->group_id}}");
        channel.bind('NewPurchase', function(data){
            window.alert('successful!');
        });

我在我的后端创建这些自定义组就好了

public function broadcastOn()
    {
        return [Player::where('user_id', $this->product->seller_id)->first()->group_id];
    }

我不断收到“找不到类播放器”,也许是因为我在那里的 php 似乎没有被阅读?

标签: phpjquerylaravelchannelpusher

解决方案


由于Player是模型,因此通过完全限定名称对其进行实例化

var channel = pusher.subscribe("{{\App\Player::where('user_id', Auth::user()->id)->first()->group_id}}");
public function broadcastOn()
{
   return [App\Player::where('user_id', $this->product->seller_id)->first()->group_id];
}

推荐阅读