Итак, в моем приложении при приглашении нового пользователя я называю свое 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
), он пытается выполнить вещание на пустой канал, что приводит к множеству невыполненных заданий с сообщением «Неверное имя канала».
Видя, что я хотел бы, чтобы событие все еще вызывалось, но только для фактической трансляции, если есть существующий пользователь, есть ли способ отменить трансляцию из определения события? Или я должен просто вернуть случайную строку для канала и позволить ему транслироваться там?