Cos’è il broadcasting
Con i WebSocket puoi inviare dati in tempo reale dal server al client. Il broadcasting di Laravel è il meccanismo che veicola gli eventi lato server al JavaScript frontend via WebSocket. Ad esempio, al cambio di stato di un ordine, puoi mostrare l’aggiornamento subito nel browser senza ricaricare la pagina. La forza del broadcasting di Laravel è condividere direttamente nome dell’evento e dati tra server e client.Il broadcasting è costruito sul sistema di eventi di Laravel.
Padroneggia prima le basi di Eventi e listener.
Setup
Nelle nuove app Laravel il broadcasting è disabilitato di default. Attivalo con il comando Artisaninstall:broadcasting.
config/broadcasting.php e routes/channels.php.
Laravel Reverb
Da Laravel 11 in poi si consiglia il server WebSocket ufficiale Laravel Reverb. Reverb è self-hosted e realizza la comunicazione real-time senza servizi esterni.Installazione
Con l’opzione--reverb del comando install:broadcasting esegui in blocco l’installazione dei pacchetti Composer/NPM e la configurazione di .env.
Valori principali in .env
Avvio del server Reverb
Creazione di eventi broadcast
Genera la classe evento
ShouldBroadcast.
ShouldBroadcast e l’evento viene trasmesso automaticamente via coda.
Personalizzare il payload
Di default vengono trasmesse tutte le proprietàpublic. Per filtrare usa broadcastWith.
Nome dell’evento personalizzato
Di default il nome è quello della classe. Cambialo conbroadcastAs.
. per disabilitare il prefisso del namespace.
Tipi di canale
Autorizzazione dei canali
I canali Private e Presence effettuano un controllo di autorizzazione lato server prima della sottoscrizione.routes/channels.php
Definisci le callback inroutes/channels.php (creato da install:broadcasting).
true (o truthy) per autorizzare, false per negare.
Puoi usare il route model binding.
Con nome canale
orders.{order}, viene passata un’istanza Order.Classi di canale per l’autorizzazione
Se i canali crescono organizza con classi.routes/channels.php.
Emettere gli eventi
Gli eventi conShouldBroadcast si emettono come i normali eventi.
toOthers.
Ricezione nel frontend
Setup di Laravel Echo
Con Reverb, configura Echo inresources/js/bootstrap.js.
Ascolto degli eventi
Hook React / Vue
Con gli starter kit React/Vue puoi usare hook dedicati.useEcho abbandona automaticamente il canale allo unmount del componente.
Esempio pratico: aggiornamento in tempo reale dello stato di un ordine
1
Attiva il broadcasting
2
Crea l'evento
3
Definisci l'autorizzazione del canale
4
Emetti l'evento
Dopo l’aggiornamento dello stato dell’ordine, in un controller o job:
5
Ricevi nel frontend
Da template Blade o componente React/Vue:
Prossimi passi
Laravel Reverb
Setup, esercizio in produzione e scaling del server Reverb.
Code e job
Il broadcasting passa per la coda: configura e gestisci le code.
Eventi e listener
Il sistema di eventi di Laravel alla base del broadcasting.