Laravel 11 Реверберация в локальной сети

Вопрос или проблема

Кто-нибудь знает, как правильно настроить Laravel Reverb для локальной сети, чтобы делиться своим проектом через IP:PORT? Другие пользователи смогут слушать websocket.

Мое приложение работает на IP:2020

ws://IP:9909/app/rfqctj66urp5ymorrtjk?protocol=7&client=js&version=8.4.0-rc2&flash=false

pusher-js.js?v=f2fbc5a1:3261 Подключение WebSocket к ‘ws://IP:9909/app/rfqctj66urp5ymorrtjk?protocol=7&client=js&version=8.4.0-rc2&flash=false’ не удалось:

Я пытался запустить мое приложение с сертификатом https openssl, но это все равно не сработало. Мне действительно нужно хостить мой сайт? Мои требования — это развернуть мой веб на локальной сети только с вебсокетами.

Ответ или решение

Настройка Laravel Reverb на локальной сети

Если вы хотите настроить Laravel Reverb для работы в локальной сети, чтобы пользователи могли подключаться к вашему приложению по IP:PORT и взаимодействовать с WebSocket, следуйте этим рекомендациям.

Шаг 1: Подготовка окружения

  1. Убедитесь, что у вас установлен Laravel: Проверьте, что вы используете корректную версию Laravel (в вашем случае это Laravel 11). Убедитесь, что все зависимости установлены, и ваше приложение работает на локальном сервере.

  2. Настройте .env файл: Проверьте ваш файл .env и убедитесь, что параметры APP_URL и вебсокеты настроены правильно.

    APP_URL=http://IP:2020
    BROADCAST_DRIVER=pusher
    PUSHER_APP_ID=ваш_идентификатор
    PUSHER_APP_KEY=ваш_ключ
    PUSHER_APP_SECRET=ваш_секрет
    PUSHER_APP_CLUSTER=your_cluster # зависит от вашей настройки

Шаг 2: Настройка Pusher

Как вы уже упомянули, ваше приложение использует WebSocket для взаимодействия. Вам необходимо убедиться, что у вас правильно настроен клиент Pusher.

  • В вашем JavaScript коде подключите pusher-js:

    const pusher = new Pusher('ваш_ключ', {
        cluster: 'your_cluster'
    });
  • Обратите внимание на правильный адрес WebSocket. Используйте:

    ws://IP:9909/app/ваш_ключ?protocol=7&client=js&version=8.4.0-rc2&flash=false

Шаг 3: Запуск сервера WebSocket

  1. Запустите Echo Server: Если вы не сделали этого, установите Laravel Echo Server. Вы можете использовать следующие команды:

    npm install -g laravel-echo-server
    laravel-echo-server init
  2. Конфигурация Echo Server: Откройте файл laravel-echo-server.json и задайте параметры, позволяющие подключаться по вашему IP. Например:

    {
      "protocol": "http",
      "host": "IP",
      "port": "9909",
      "appId": "ваш_идентификатор",
      "appKey": "ваш_ключ",
      "appSecret": "ваш_секрет",
      "namespace": "App\\Events",
      "database": "dynamodb",
      "databaseConfig": {
        "table": "laravel_echo_channel"
      },
      "debug": true,
      "allow_origin": "*"
    }
  • Запустите Echo Server:

    laravel-echo-server start

Шаг 4: Настройка HTTPS

Если вы хотите использовать HTTPS, вам нужно создать самоподписанный сертификат (для тестирования на локальной сети):

  1. Создайте сертификат:

    openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.crt
  2. Настройте ваш сервер (например, если вы используете Nginx или Apache) для работы с этим сертификатом.

Шаг 5: Проверьте подключение

После того как вы выполните все настройки, откройте браузер и проверьте подключение к WebSocket. Запустите laravel-echo-server и убедитесь, что приложение без проблем связывается с сервером и получает события.

Заключение

Для того чтобы Laravel Reverb работал в локальной сети, необходимо правильно настроить параметры приложения, сервер вебсокетов и обеспечить доступ по IP и порту. Следуя шагам выше, вы сможете успешно.deploy ваш проект для использования с WebSocket на локальной сети. В случае возникновения проблем проверьте настройки и логи, чтобы получить дополнительную информацию о возможных ошибках.

Оцените материал
Добавить комментарий

Капча загружается...