Comments 3
Спасибо за статью. Centrifugo действительно крутой инструмент и его главное отличие от reverb и ему подобных это то, что он не только может отправлять события клиенту, но и клиент может через него слать сообщения на сервер. И вот здесь он крут.
У них есть в доке раздел Proxy events to the backend где они описывают механизм отправки сообщений от клиента на сервер и не только. Я очень часто использую фичу, когда клиент только устанавливает соединение с Webscoket сервером, то я его сразу авторизую и подписываю на те каналы которые ему нужны и мне не нужно из JS управлять подписками.
Причем там есть проксирование по gRPC и мы можем вообще скрыть endpoint для обмена данными между Centrifugo и backend сервером и это прям мега фича.
Короче он нам в своё время настолько зашел, что у RoadRunner из коробки появился плагин для Centrifugo с двухсторонним взаимодействием по gRPC и PHP SDK для работы. И проводили стрим на тему создания чата с RoadRunner и Centrifugo
P.s. посмотрел composer пакет и там только про push и ничего про проксирование(
Спасибо за комментарий. У centrifugo действительно обширная документация
на английском языке, поэтому статьи на русском всегда в дополнение и в
помощь этой документации. Проксирование скорей дополнительная тема,
которая требует отдельной статьи. Проксирование на php бэкэнд не всем
подходит и имеет как свои плюсы, так и недостатки. Это удобно и можно
пользоваться известной архитектурой Laravel php, но это и накладные
расходы для сервера, которому придется каждый такой запрос обрабатывать
на php. У centrifugo еще блог есть и там неплохая статья https://centrifugal.dev/blog/2021/12/14/laravel-multi-room-chat-tutorial в ней тоже такой способ описывается.
Спасибо за комментарий. У centrifugo действительно обширная документация на английском языке, поэтому статьи на русском всегда в дополнение и в помощь этой документации. Проксирование скорей дополнительная тема, которая требует отдельной статьи. Проксирование на php бэкэнд не всем подходит и имеет как свои плюсы, так и недостатки. Это удобно и можно пользоваться известной архитектурой Laravel php, но это и накладные расходы для сервера, которому придется каждый такой запрос обрабатывать на php. У centrifugo еще блог есть и там неплохая статья https://centrifugal.dev/blog/2021/12/14/laravel-multi-room-chat-tutorial в ней тоже такой способ описывается.
Использование Laravel драйвера centrifugo для широковещания