Laravel websockets
Laravel websockets типа подменяет собой сервер pusher`а
Сначала убедимся что в настройках docker-compose.yml открыт порт 6001 для нашего laravel-websockets
ports:
- "9000:9000"
- "3000:3000" # дополнительный порт для websocket на котором будут крутиться (webpack,Vite)
- "6001:6001" # дополнительный порт для laravel-websocketsустановим пакет beyondcode/laravel-websockets и запустим публикацию конфига и миграций и саму миграцию:
composer require beyondcode/laravel-websockets
php artisan vendor:publish --provider="BeyondCode\LaravelWebSockets\WebSocketsServiceProvider" --tag="migrations"
php artisan migrate
php artisan vendor:publish --provider="BeyondCode\LaravelWebSockets\WebSocketsServiceProvider" --tag="config"установим пакет pusher/pusher-php-server
composer require pusher/pusher-php-serverнастроим .env
BROADCAST_DRIVER=pusherPUSHER_APP_ID=livepost
PUSHER_APP_KEY=livepost_key
PUSHER_APP_SECRET=livepost_secretQUEUE_CONNECTION=syncустанавливаем настройки в options в драйвере pusher в файле broadcasting.php
'options' => [
'host' => 'localhost',
'port' => 6001,
'scheme' => 'http',
'encrypted' => false,
'useTLS' => false,
],запустим websockets и проверим подключение:
и перейдём по адрессу http://localhost:8098/laravel-websockets при нажатии Connect мы должны увидить информацию про подключение:

завершаем процесс нажатием ^+c
расскоментируем App\Providers\BroadcastServiceProvider::class в нижней части app.php
создадим новый ивент:
добавляем нашему ивенту интерфейс ShouldBroadcast
и настраиваем ивент:
устанавливаем laravel-echo и pusher-js@7.6.0 (надо устанавливать именно 7.6.0 так как в версиях выше уже не получится закомментировать cluster)
в resources/js/bootstrap.js раскомментируем код импорта и инициализации laravel-echo и pusher-js и настраиваем их конфиг как в документации:
создаём представление websocket.blade.php подключаем в нём app.js и прописываем для него роут:
Объявляем наши каналы и дописываем отправку post запроса через axios в resources/js/app.js
собираем все эти файлы через npm и опять запускаем websockets сервер:
переходим на http://localhost:8098/ws и видим в консоли subscribed! А при отправке формы, видим в консоли данные которые он отправил и сообщения из них добавляются в ul list-message. Оно будет доступно во всех вкладках которые подписаны на канал public.chat.1
Last updated