Questa pagina si concentra su setup ed esercizio del server Reverb.
Per la creazione degli eventi broadcast e Laravel Echo consulta Broadcasting.
Cos’è Reverb
Laravel Reverb è il server WebSocket self-hosted ufficiale. Aggiunge comunicazione real-time veloce e scalabile senza dipendenze da servizi esterni. Reverb opera sopra il broadcasting: trasmette al browser via WebSocket gli eventi lato server.Installazione
Coninstall:broadcasting installi tutte le dipendenze incluso Reverb.
--reverb.
- Installazione del pacchetto Composer (
laravel/reverb) - Installazione dei pacchetti NPM (
laravel-echo,pusher-js) - Aggiunta di variabili in
.env - Generazione di
config/reverb.php
Configurazione
Credenziali dell’app
Imposta le credenziali di connessione tra client e server.apps di config/reverb.php.
Origini consentite (Allowed Origins)
Limita le origini inallowed_origins di config/reverb.php.
* accetti tutte le origini.
Supporto multi-app
Puoi supportare più applicazioni su un unico server Reverb aggiungendo voci aapps.
SSL
In produzione Nginx termina SSL e fa da proxy verso Reverb. Per usarewss:// in sviluppo, sfrutta i certificati di Laravel Herd o Valet.
tls in config/reverb.php.
Avvio del server
0.0.0.0:8080.
Con --host / --port cambi l’indirizzo.
REVERB_SERVER_HOST / REVERB_SERVER_PORT sono gli indirizzi di ascolto del server.
REVERB_HOST / REVERB_PORT sono l’indirizzo verso cui Laravel invia i messaggi broadcast.
In produzione possono differire.Modalità debug
Reverb non emette debug info di default. Con--debug vedi connessioni e messaggi.
Riavvio
Per applicare modifiche al codice devi riavviare.reverb:restart termina in modo graceful.
Monitoraggio
Reverb si integra con Laravel Pulse. Mostra connessioni e messaggi in tempo reale. Aggiungi i recorder inconfig/pulse.php.
pulse:check sul server Reverb.
In scaling orizzontale eseguilo su una sola macchina.
Esercizio in produzione
Limite di file aperti
Ogni connessione WebSocket usa un file descriptor. Controlla il limite e aumentalo se serve./etc/security/limits.conf.
Event loop (ext-uv)
Il defaultstream_select di PHP ha un limite di 1.024 file. Per > 1.000 connessioni installa ext-uv.
Reverse proxy Nginx
In produzione fai da proxy con Nginx.worker_rlimit_nofile e worker_connections.
Gestione dei processi (Supervisor)
Impostaminfds.
Scaling (Redis)
Per scalare orizzontalmente usa il pub/sub di Redis. Abilita nello.env:
Laravel Cloud offre infrastruttura WebSocket completamente gestita per app compatibili con Reverb.
Eventi
Reverb emette eventi nel ciclo di vita di connessioni e messaggi. Ascoltali con listener.| Evento | Descrizione |
|---|---|
ChannelCreated | Canale creato (primo abbonato) |
ChannelRemoved | Canale rimosso (ultimo abbonato via) |
ConnectionPruned | Connessione vecchia terminata dal server |
MessageReceived | Ricevuto un messaggio dal client |
MessageSent | Inviato un messaggio al client |
Laravel\Reverb\Events.
Prossimi passi
Broadcasting
Creazione eventi broadcast, autorizzazione dei canali e configurazione di Laravel Echo.
Eventi e listener
Il sistema di eventi di Laravel per ricevere gli eventi emessi da Reverb.