Skip to main content

Qu’est-ce que le broadcasting

Les WebSockets permettent au serveur d’envoyer des données au client en temps réel. Le broadcasting Laravel achemine les événements côté serveur vers le JavaScript frontend via WebSocket. Par exemple, quand le statut d’une commande change, l’affichage se met à jour dans le navigateur sans recharger la page. La force du broadcasting Laravel est de partager tel quel nom d’événement et données entre serveur et client.
Le broadcasting repose sur le système d’événements Laravel. Familiarisez-vous d’abord avec Événements et listeners.

Mise en place

Le broadcasting est désactivé par défaut dans un nouveau projet. Activez-le via install:broadcasting.
La commande vous demande quel service utiliser et génère config/broadcasting.php et routes/channels.php.

Laravel Reverb

Depuis Laravel 11, le serveur WebSocket officiel Laravel Reverb est recommandé. Self-hosted, il fournit du temps réel sans service externe.

Installation

install:broadcasting --reverb installe les packages Composer/NPM et met à jour .env en une commande.
Installation manuelle :

Variables .env principales

Démarrer Reverb

En production, Supervisor (ou équivalent) fait tourner Reverb en daemon.
Les événements de broadcast passent par la queue. Démarrez aussi un worker :

Créer un événement de broadcast

Générer l’événement

Implémentez l’interface ShouldBroadcast.
Avec ShouldBroadcast, l’événement dispatché est automatiquement mis en file puis diffusé.

Personnaliser la charge utile

Par défaut, toutes les propriétés public sont incluses. Filtrez avec broadcastWith.

Personnaliser le nom d’événement

Le nom de classe sert par défaut. Personnalisez avec broadcastAs.
Côté frontend, préfixez de . pour désactiver le namespace applicatif.

Types de canaux

Plusieurs canaux : retournez un tableau.

Autorisation de canal

Private et Presence exigent une vérification serveur avant souscription.

routes/channels.php

Généré par install:broadcasting.
Premier argument : utilisateur authentifié ; suivants : wildcards du nom de canal. Retour truthy = autorisé ; false = refusé.
Route model binding disponible. orders.{order} reçoit une instance de Order.

Classe de canal

Pour ranger le code quand il y en a beaucoup :
Enregistrez dans routes/channels.php.

Déclencher l’événement

Comme un événement normal.
Pour exclure l’expéditeur, utilisez toOthers.
toOthers requiert le trait InteractsWithSockets.

Réception côté frontend

Laravel Echo

Installez et configurez dans resources/js/bootstrap.js.

Écouter les événements

Hooks React / Vue

Les kits de démarrage React/Vue proposent des hooks dédiés.
Ils quittent automatiquement le canal au démontage.
Vérifiez que VITE_REVERB_* sont bien renseignés dans .env avant le build.

Exemple : mise à jour temps réel d’un statut de commande

1

Activer le broadcasting

Démarrez Reverb et un worker de queue.
2

Créer l'événement

Éditez app/Events/OrderShipmentStatusUpdated.php.
3

Autorisation de canal

Dans routes/channels.php.
4

Dispatcher l'événement

Depuis un contrôleur ou un job après mise à jour.
5

Écouter côté frontend

Script inline dans Blade ou composant React/Vue.

Prochaines étapes

Laravel Reverb

Setup, exploitation et scaling du serveur Reverb.

Queues et jobs

Le broadcasting passe par la queue : configurez-la correctement.

Événements et listeners

Les fondations du système d’événements Laravel.
Dernière modification le 13 juillet 2026