Pull to refresh
16K+
4
Максим Гречушников@maxyc_webber

Senior PHP Developer

Send message

Альтернативы Centrifugo для Laravel: Reverb, Pusher, Ably, Socket.IO, SSE и polling

Level of difficultyEasy
Reading time11 min
Reach and readers5K

Заключительная часть серии статей про Laravel + Centrifugo и как его готовить.

Сравниваем альтернативы Centrifugo для Laravel: Reverb, Pusher, Ably, Socket.IO, SSE и polling. Разбираем плюсы, минусы и сценарии выбора real-time решения.

Читать далее

Публикация событий из Laravel в Centrifugo: Events, listeners, queue jobs и безопасный real-time payload

Level of difficultyEasy
Reading time12 min
Reach and readers6.5K

В этой статье разберём, как правильно организовать публикацию real-time событий в Laravel: почему не стоит отправлять сообщения напрямую из контроллеров, как использовать Laravel Events и listeners, зачем нужны queue jobs, почему afterCommit() критичен для корректности данных и каким должен быть безопасный payload без полной Eloquent-модели.

Читать далее

Каналы и авторизация в Centrifugo: как безопасно подключить real-time в Laravel

Level of difficultyEasy
Reading time10 min
Reach and readers6.1K

Real-time без авторизации опасен. Если пользователь может подписаться на чужой канал, он может получать чужие уведомления, статусы заказов, сообщения, события админки или финансовые обновления. В обычном HTTP API такая ошибка выглядела бы как доступ к чужому endpoint. В WebSocket-архитектуре ошибка такая же, просто выглядит менее очевидно.

Разбираем в Centrifugo: публичные и приватные подписки, connection token, subscription token, права доступа и безопасное подключение

Читать далее

Архитектура Laravel + Centrifugo: кто за что отвечает в real-time системе

Level of difficultyEasy
Reading time8 min
Reach and readers6.3K

В первой части мы разобрались, что Real-time на Laravel-сайте нужен там, где интерфейс должен получать изменения без перезагрузки страницы: новые уведомления, смену статуса заказа, сообщения в чате, обновления виджетов, события в административной панели. Для таких задач классическая модель HTTP-запроса уже недостаточна, а polling создаёт лишнюю нагрузку на backend. Один из практичных вариантов решения — использовать Centrifugo как отдельный WebSocket-сервер рядом с Laravel-приложением.

В этой статье разберём архитектуру Laravel + Centrifugo: за что отвечает Laravel, какую роль выполняет Centrifugo, как frontend подключается к real-time каналу и как выглядит типовой сценарий публикации события, например при изменении статуса заказа.

Читать далее

Real-time на сайте с Laravel и Centrifugo: зачем нужен WebSocket

Level of difficultyEasy
Reading time8 min
Reach and readers7.6K

Разбираем, зачем нужен real-time на сайте, почему polling создаёт лишнюю нагрузку и как Centrifugo помогает добавить WebSocket в Laravel-приложение без разрушения backend-архитектуры.

Читать далее

Information

Rating
1,260-th
Location
Калининград (Кенигсберг), Калининградская обл., Россия
Date of birth
Registered
Activity

Specialization

Specialist
Ведущий
From 350,000 ₽
PHP
Laravel
Yii framework
Symfony
Высоконагруженные системы
Проектирование архитектуры приложений
Управление разработкой
MySQL
PostgreSQL
Docker