Realtime funksiyalar — canlı bildirişlər, çat, onlayn istifadəçilər siyahısı — Laravel-də broadcasting ilə qurulur. Laravel 12-də rəsmi WebSocket serveri Reverb, brauzer tərəfdə isə Laravel Echo istifadə olunur.
Arxitektura: event → Reverb → Echo
PHP kodu event yaradır, o növbədən keçib Reverb-ə düşür, Reverb isə abunə olmuş brauzerlərə göndərir. PHP özü WebSocket bağlantısını saxlamır.
Quraşdırma
Bir əmr hər şeyi qurur: Reverb paketi, config/broadcasting.php, routes/channels.php və JavaScript tərəfi.
php artisan install:broadcasting
php artisan reverb:start --debug
php artisan queue:listen
npm run dev.env faylında əsas dəyərlər:
BROADCAST_CONNECTION=reverb
REVERB_APP_ID=local-app
REVERB_APP_KEY=local-key
REVERB_APP_SECRET=local-secret
REVERB_HOST="localhost"
REVERB_PORT=8080
REVERB_SCHEME=http
VITE_REVERB_APP_KEY="${REVERB_APP_KEY}"
VITE_REVERB_HOST="${REVERB_HOST}"
VITE_REVERB_PORT="${REVERB_PORT}"
VITE_REVERB_SCHEME="${REVERB_SCHEME}"💡
--debugbayrağı hər bağlantı və mesajı terminalda göstərir — inkişaf zamanı faydalıdır.
Broadcast event yazmaq
Event ShouldBroadcast interfeysini tətbiq edir və broadcastOn() ilə kanalı göstərir. broadcastAs() və broadcastWith() ixtiyaridir: ad və göndərilən məlumatı dəqiqləşdirir.
<?php
namespace App\Events;