@NikSIk31

Laravel + pusher как спрятать ошибку?

Как я могу спрятать 403 forbidden ошибку, использую лаварел и пушер ? Ситуация такая: У меня есть пользователи на моей странице, которые могут получать сообщения, и другие, которые не могут - это проверяется в channel.php, например
Broadcast::channel('post.{id}', function ($user, $id) {
  return *my expresion*;
});

и если возвращается false , то пользователи получают ошибку 403 (в консоли браузера), а иначе все работает. И получается у меня страница на которой могут быть пользователи которые прошли проверку и не прошли на получение сообщений. Но те кто не прошел получают ошибку - ее я бы хотел убрать.

На всякий случай скину важные части кода:
BroadcastServiceProvider:
public function boot()
    {
        Broadcast::routes();

        require base_path('routes/channels.php');
    }

в папке событий у меня есть событие NewComment, которое реализует ShouldBroadcast и имеет broadcastWith и broadcastOn:
public function broadcastOn()
    {
        return new PrivateChannel('post.' . $this->comment->post->id);
    }

на фронте вот так:
var channel = Echo.private('post.' + this.post.id);
            channel.listen('NewComment', (comment) => {
                console.log(comment);
            });

Итак:
Я хочу, чтобы любой пользователь зашедший на страницу не видел ошибки. Но только конкретный может использовать канал. Сейчас это работает, но пользователям, которые не могут использовать канал, ошибка 403 выскакивает.
  • Вопрос задан
  • 241 просмотр
Решения вопроса 1
@andreysuha
Что то знаю
Как насчёт проверять может пользователь слушать канал или нет ещё до того как начинаете его слушать и если не может просто не слушать канал
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы