laravel广播的多重卫兵

Has*_*ori 3 php broadcast socket.io laravel

我有这对我的应用程序定义的权威性守卫之下adminsdesignerscustomers等默认的后卫是designer guard

我希望每个guard人都有自己的private channel。所以我在我的channel.php中定义了它,每个都有多个条目,如下所示

Broadcast::channel('private.admins.{id}', function ($admin, $id) {


    Log::info($admin);
    //logging the admin

});
Run Code Online (Sandbox Code Playgroud)

但这总是bindingdefault guard类有关,所以我的问题是如何告诉我在这里使用它Admin model。我在任何地方都找不到。所以你能指出我正确的方向吗

其实我希望每个guard人都有自己的private channel

rkj*_*rkj 7

尝试更改BroadcastServiceProvider文件app\Providers\BroadcastServiceProvider.php

每个警卫的不同广播身份验证端点

public function boot()
{
   //Broadcast::routes();
   //match any of the 3 auth guards
   Broadcast::routes(['middleware' => ['web','auth:admins,designers,customers']]);
   require base_path('routes/channels.php');
}
Run Code Online (Sandbox Code Playgroud)

现在在channels.php中

Broadcast::channel('admins.channel.{id}', function ($admin, $id) {
      return $admin->id === $id && get_class($admin) === 'App\Admin';
});

Broadcast::channel('designers.channel.{id}', function ($designer, $id) {
      return $designer->id === $id && get_class($designer) === 'App\Designer';
});

Broadcast::channel('customers.channel.{id}', function ($customer, $id) {
      return $customer->id === $id && get_class($customer) === 'App\Customer';
});
Run Code Online (Sandbox Code Playgroud)