another_dream
@another_dream
Backend-разработчик, Laravel/ZF2/Yii2

Почему не броадкастится эвент через Laravel Events?

Имеется связка Laravel 5.1 + Socket IO + Redis + Laravel Events.
В какой-то момент (точно сказать не могу, так как сам не заметил) сервер с бэкенда перестали улетать эвенты на сокет.
То есть ранее достаточно было implements ShouldBroadcast и возврат необходимого канала в broadcastOn() чтобы в Redis попало сообщение и оттуда на сокет.
Сейчас всё перестало работать и причина не ясна, однако следующий вариант, являющийся точной копией функционала, который предоставляли Events с броадкастом, работает как следует:
Redis::publish('channel'.$this->room_id, json_encode([
            'data' => [
                'data' => $data, 
                'type' => $type, 
                'room_id' => $room_id, 
                'user_id' => $user_id, 
                'system' => $system,
            ],
            'event' => $event
        ]));

То есть на выходе я получаю то, что и нужно было, даже не пришлось ничего переписывать в nodejs-сервере, однако это временное решение и хотелось бы узнать причину такого неадекватного поведения фреймворка.

К сведению - на сервере ничего, кроме установки либы ffmpeg, не изменилось, даже vendor не обновлялся композером(то есть версии пакетов такие же как и ранее, когда всё работало).

Пример StepByStep-мануала: https://www.danholloran.me/2016/01/30/laravel-and-...
У меня код аналогичный с поправкой на дополнительную функциональность, не меняющую основную логику.
  • Вопрос задан
  • 364 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

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