Laravel Reverb и WebSocket
Назначение Reverb, WebSocket-маршрут, системная служба и проверка чата
Laravel Reverb доставляет события между серверной частью, панелью и клиентским сайтом без перезагрузки. В iEXExchanger он используется для чата и других обновлений в реальном времени; сами сообщения сохраняются в системе.
Где работает менеджер
Для повседневной работы с сообщениями откройте «Заявки» — «Список заявок», затем нужную заявку и вкладку «Чат с клиентом». Альтернативный вход — значок сообщений в верхней панели и «Центр чатов».
Нужны права:
«Разрешить управление заявками в админпанели» из блока «Админпанель»;
«Разрешить управление онлайн чатом для заявок в админпанели» из блока «Заявки».
Права выдаются по пути «Пользователи» — «Список групп пользователей».
Состояние процесса Reverb смотрите отдельно по пути «Утилиты» — «Службы». Для просмотра требуется «Просмотр служб обменника», а для действий «Запустить», «Остановить» и «Перезапустить» — «Управление службами обменника» из блока «Админпанель». Эти права не дают доступ к содержимому чатов.
Как устроено соединение
Браузер подключается по защищённому wss:// к публичному домену. Nginx принимает соединение и передаёт его на внутренний Reverb. Внутренний порт не открывается всему интернету. Разрешены только точные домены клиентского сайта и панели; рабочий allowlist не должен содержать *.
Проверка службы
systemctl --no-pager --full status iex-reverb.service
journalctl -u iex-reverb.service --since '-1 hour' --no-pagerПосле этого проверьте конечный сценарий:
Откройте одну тестовую заявку в панели и клиентской сессии.
Отправьте сообщение в обе стороны.
Убедитесь, что оно появляется без обновления страницы.
Обновите обе страницы и убедитесь, что сообщения сохранились.
Обычный ответ сайта со статусом 200 не проверяет WebSocket Upgrade.
Nginx, HTTPS и Cloudflare
Nginx должен передавать заголовки Upgrade на внутренний адрес Reverb. Сертификат покрывает используемый домен, а страница HTTPS подключается только через WSS. В Cloudflare WebSockets должны быть разрешены, а правила WAF не должны блокировать корректное начальное соединение.
Рабочая конфигурация создаётся установщиком. Перед ручным изменением сохраните текущую версию и выполните nginx -t; не открывайте внутренний порт Reverb как способ исправления.
После обновления
Экран «Обновления» сам перезапускает Reverb в согласованном порядке. После завершения повторите двустороннюю проверку чата. Если сообщения появляются только после обновления страницы, проверяйте службу, Nginx, сертификат, разрешённые домены, Cloudflare и очередь публикации.
Описание протокола и настроек приведено в официальной документации Laravel Reverb.
Последнее обновление
Это было полезно?