Имеется связка
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-...
У меня код аналогичный с поправкой на дополнительную функциональность, не меняющую основную логику.