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.

Event-in Laravel-dən brauzerə yolu
Event-in Laravel-dən brauzerə yolu

Quraşdırma

Bir əmr hər şeyi qurur: Reverb paketi, config/broadcasting.php, routes/channels.php və JavaScript tərəfi.

bash
php artisan install:broadcasting
php artisan reverb:start --debug
php artisan queue:listen
npm run dev

.env faylında əsas dəyərlər:

bash
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}"

💡 --debug bayrağı 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
<?php

namespace App\Events;