W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
要通知 Laravel 應(yīng)該廣播給定事件,并在該事件上實(shí)現(xiàn) Illuminate\Contracts\Broadcasting\ShouldBroadcast
接口。此接口已導(dǎo)入到框架生成的所有事件類中,因此你可以輕松地將其添加到任何事件中。
ShouldBroadcast
接口要求你實(shí)現(xiàn)一個(gè)方法: broadcastOn
。 broadcastOn
方法應(yīng)該返回事件應(yīng)該廣播的頻道或頻道數(shù)組。 該頻道應(yīng)該是 Channel
, PrivateChannel
,或者 PresenceChannel
的實(shí)例。Channel
的實(shí)例 代表任何用戶可以訂閱的公共頻道, PrivateChannels
和 PresenceChannels
實(shí)例代表需要頻道授權(quán)的私有頻道:
<?php
namespace App\Events;
use App\Models\User;
use Illuminate\Broadcasting\Channel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Queue\SerializesModels;
class ServerCreated implements ShouldBroadcast
{
use SerializesModels;
public $user;
/**
* 新建一個(gè)新的事件實(shí)例。
*
* @return void
*/
public function __construct(User $user)
{
$this->user = $user;
}
/**
* 獲取事件應(yīng)廣播的頻道。
*
* @return Channel|array
*/
public function broadcastOn()
{
return new PrivateChannel('user.'.$this->user->id);
}
}
那么, 你僅僅需要像平常那樣 觸發(fā)事件 。事件一旦觸發(fā), 一個(gè) 隊(duì)列任務(wù) 將通過你指定的廣播驅(qū)動(dòng)程序廣播該事件。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: