Laravel предоставляет удобные средства для работы с WebSocket через пакеты и библиотеки. Один из таких пакетов - это "beyondcode/laravel-websockets".
Установите пакет через Composer:
composer require beyondcode/laravel-websockets
Затем выполните миграции:
.env
:PUSHER_APP_ID=your-app-id
PUSHER_APP_KEY=your-app-key
PUSHER_APP_SECRET=your-app-secret
PUSHER_APP_CLUSTER=mt1
config/broadcasting.php
:// ...
'pusher' => [
'driver' => 'pusher',
'key' => env('PUSHER_APP_KEY'),
'secret' => env('PUSHER_APP_SECRET'),
'app_id' => env('PUSHER_APP_ID'),
'options' => [
'cluster' => env('PUSHER_APP_CLUSTER'),
'encrypted' => true,
'host' => '127.0.0.1',
'port' => 6001, // порт, используемый WebSocket
'scheme' => 'http',
],
],
// ...
],
routes/websockets.php
и определите ваши WebSocket маршруты:use Illuminate\Support\Facades\Broadcast;
Broadcast::channel('chat.{roomId}', function ($user, $roomId) {
return true; // Логика, проверяющая доступ к каналу
});
Запустите сервер WebSocket с помощью Artisan команды:
import Echo from 'laravel-echo';
window.Echo = new Echo({
broadcaster: 'pusher',
key: process.env.MIX_PUSHER_APP_KEY,
cluster: process.env.MIX_PUSHER_APP_CLUSTER,
encrypted: true,
wsHost: window.location.hostname,
wsPort: 6001, // порт WebSocket
});
Автор: Евгений Морковин
0 комментариев