For the complete documentation index, see llms.txt. This page is also available as Markdown.

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

После этого проверьте конечный сценарий:

  1. Откройте одну тестовую заявку в панели и клиентской сессии.

  2. Отправьте сообщение в обе стороны.

  3. Убедитесь, что оно появляется без обновления страницы.

  4. Обновите обе страницы и убедитесь, что сообщения сохранились.

Обычный ответ сайта со статусом 200 не проверяет WebSocket Upgrade.

Nginx, HTTPS и Cloudflare

Nginx должен передавать заголовки Upgrade на внутренний адрес Reverb. Сертификат покрывает используемый домен, а страница HTTPS подключается только через WSS. В Cloudflare WebSockets должны быть разрешены, а правила WAF не должны блокировать корректное начальное соединение.

Рабочая конфигурация создаётся установщиком. Перед ручным изменением сохраните текущую версию и выполните nginx -t; не открывайте внутренний порт Reverb как способ исправления.

После обновления

Экран «Обновления» сам перезапускает Reverb в согласованном порядке. После завершения повторите двустороннюю проверку чата. Если сообщения появляются только после обновления страницы, проверяйте службу, Nginx, сертификат, разрешённые домены, Cloudflare и очередь публикации.

Описание протокола и настроек приведено в официальной документации Laravel Reverb.

Последнее обновление

Это было полезно?