Skip to main content
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

Con install:broadcasting installi tutte le dipendenze incluso Reverb.
Puoi selezionare Reverb nel prompt o passare --reverb.
Il comando esegue:
  • Installazione del pacchetto Composer (laravel/reverb)
  • Installazione dei pacchetti NPM (laravel-echo, pusher-js)
  • Aggiunta di variabili in .env
  • Generazione di config/reverb.php
Manualmente:

Configurazione

Credenziali dell’app

Imposta le credenziali di connessione tra client e server.
I valori sono referenziati in apps di config/reverb.php.

Origini consentite (Allowed Origins)

Limita le origini in allowed_origins di config/reverb.php.
Con * accetti tutte le origini.

Supporto multi-app

Puoi supportare più applicazioni su un unico server Reverb aggiungendo voci a apps.

SSL

In produzione Nginx termina SSL e fa da proxy verso Reverb. Per usare wss:// in sviluppo, sfrutta i certificati di Laravel Herd o Valet.
Per certificati manuali imposta tls in config/reverb.php.

Avvio del server

Predefinito 0.0.0.0:8080. Con --host / --port cambi l’indirizzo.
Anche via env:
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.
Con Supervisor, si riavvia automaticamente.

Monitoraggio

Reverb si integra con Laravel Pulse. Mostra connessioni e messaggi in tempo reale. Aggiungi i recorder in config/pulse.php.
Nel template della dashboard:
Avvia il demone 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.
Modifica /etc/security/limits.conf.

Event loop (ext-uv)

Il default stream_select di PHP ha un limite di 1.024 file. Per > 1.000 connessioni installa ext-uv.
Se disponibile, Reverb lo usa automaticamente.

Reverse proxy Nginx

In produzione fai da proxy con Nginx.
Reverb usa /app per le connessioni WebSocket e /apps per le API. Consenti entrambi.
Per aumentare le connessioni, regola worker_rlimit_nofile e worker_connections.

Gestione dei processi (Supervisor)

Imposta minfds.
Configurazione:

Scaling (Redis)

Per scalare orizzontalmente usa il pub/sub di Redis. Abilita nello .env:
Reverb usa la connessione Redis predefinita dell’app per scambiare messaggi tra i server. Avvia più server Reverb e distribuisci con il load balancer.
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. Tutti in 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.
Ultima modifica il 13 luglio 2026