因此,在我的应用中,邀请新用户时,我会这样调用UserInvited
事件:
event(new UserInvited($invitation));
现在,这会将电子邮件发送到指定地址,并在Pusher频道上广播事件(如果用户已经存在):
public function broadcastOn()
{
$user = User::where('email', $this->invitation->recipient_email)->first();
if($user){
return new PresenceChannel('user_'.$user->id);
}
}
但是,如果它不存在(并且broadcastOn
也不返回任何内容),它将尝试广播到一个空频道,从而导致大量失败的作业说出“无效的频道名称”。
看到我希望该事件仍被调用,但是只有在存在现有用户的情况下才实际广播,是否可以从事件定义中取消广播?还是我应该为该频道返回一个随机字符串,然后在该频道中广播?