Когда-то в этом блоге пять месяцев назад была опубликована статья на тему связки "Centrifugo" и "Laravel". С тех пор много воды утекло и уважаемый Александр Емелин (FZambia) успел выкатить уже вторую версию сервера.

Что такое "Centrifugo"?

Это реал-тайм сервер сообщении, который независим от используемого вами языка. Будь у вас "Python" (Django), "Ruby" (RoR), "PHP" (Laravel) приложение или мобильное приложение для "Android" или "iOS", вы можете c успехом воспользоваться данным сервером для построения реал-тайм функционала.

Схема работы "Centrifugo" в экосистеме вашего приложения.

По стандарту используются соединения по "WebSocket", но также доступен и "SockJS". Также радует то, что разработчик написал хорошую документацию для проекта и большое количество реализации на различных языках, да и множество библиотек для работы с сервером.

Документацию по v2 вы можете найти здесь: https://centrifugal.github.io/centrifugo/

Документация по v1 доступна здесь: https://fzambia.gitbooks.io/centrifugal/content/server/index.html

Почему "Centrifugo"...

В официальной документации "Laravel" используются два официальных решения для "broadcasting" — "Pusher" и "Socket.IO". Один платный и доступен в виде сервис-услуги, второй же это "Nodejs" сервер.

В 2018 году я искал другое решение и наткнулся на "Centrifugo", который показался мне более удачным решением проблем. Поэтому, с тех самых пор использую в своих проектах именно её и не могу нарадоваться.

С другой стороны, уважаемые господа "Marcel Pociot" и "Freek Van der Herten" в конце 2018 года презентовали "Laravel WebSockets", который базируется на "Ratchet". Подробнее почитать можно здесь. Я еще не использовал это решение, но думаю, что чем больше альтернатив тем лучше. Это для заметки.

Логотип "Laravel WebSockets".

Так вот, в 2018 году я использовал первую версию сервера и при работе с ней мне помогли следующие пакеты:

Centrifugo-broadcaster (API) — обертка для "Laravel" приложении.

Centrifugo-js (CLIENT) — js библиотека для работы "Centrifugo".

Касательно js библиотеки, то версия 1.5.0 используется для сервера первой версии сервера, тогда как новая версия библиотеки 2.0.0 используется уже только для второй версии сервера. Не забудьте об этом при добавлении.

Так как "Centrifugo-broadcaster" написан для первой версии, то для второй версии можно воспользоваться оберткой от "emprove", которую он написал для себя.

Все остальные решения вы вполне можете найти в разделе "Libraries" внутри документации проектов. Ссылки на документации выше в посте.

Постараюсь в последующем опубликовать примеры кода для "Centrifugo" для "Laravel" и "Vue". Но это не точно.

Статьи автора "Centrifugo" на Хабре:

Centrifugo v2 — будущее сервера real-time сообщений и библиотека для Go

Centrifugo – 3.5 миллиона оборотов в минуту