取消活动内的广播

时间:2019-04-06 02:41:32

标签: laravel laravel-5 laravel-5.2 pusher

因此,在我的应用中,邀请新用户时,我会这样调用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也不返回任何内容),它将尝试广播到一个空频道,从而导致大量失败的作业说出“无效的频道名称”。

看到我希望该事件仍被调用,但是只有在存在现有用户的情况下才实际广播,是否可以从事件定义中取消广播?还是我应该为该频道返回一个随机字符串,然后在该频道中广播?

0 个答案:

没有答案