Вопрос или проблема
Кто-нибудь знает, как правильно настроить 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: Подготовка окружения
-
Убедитесь, что у вас установлен Laravel: Проверьте, что вы используете корректную версию Laravel (в вашем случае это Laravel 11). Убедитесь, что все зависимости установлены, и ваше приложение работает на локальном сервере.
-
Настройте .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
-
Запустите Echo Server: Если вы не сделали этого, установите Laravel Echo Server. Вы можете использовать следующие команды:
npm install -g laravel-echo-server laravel-echo-server init
-
Конфигурация 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, вам нужно создать самоподписанный сертификат (для тестирования на локальной сети):
-
Создайте сертификат:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.crt
-
Настройте ваш сервер (например, если вы используете Nginx или Apache) для работы с этим сертификатом.
Шаг 5: Проверьте подключение
После того как вы выполните все настройки, откройте браузер и проверьте подключение к WebSocket. Запустите laravel-echo-server
и убедитесь, что приложение без проблем связывается с сервером и получает события.
Заключение
Для того чтобы Laravel Reverb работал в локальной сети, необходимо правильно настроить параметры приложения, сервер вебсокетов и обеспечить доступ по IP и порту. Следуя шагам выше, вы сможете успешно.deploy ваш проект для использования с WebSocket на локальной сети. В случае возникновения проблем проверьте настройки и логи, чтобы получить дополнительную информацию о возможных ошибках.