Laravel Reverb : Un serveur WebSocket natif pour Laravel
Laravel Reverb est une nouvelle fonctionnalité introduite dans Laravel 11, permettant d’exécuter un serveur WebSocket directement dans Laravel, sans dépendances externes comme Pusher ou Laravel Echo Server.
🚀 Pourquoi Laravel Reverb ?
Avant Reverb, pour utiliser WebSockets avec Laravel, il fallait utiliser :
- Pusher (service tiers payant).
- Laravel WebSockets (paquet externe nécessitant un serveur dédié).
Laravel Reverb change la donne en offrant une solution native et optimisée, directement intégrée dans Laravel.
🔧 Fonctionnalités clés de Laravel Reverb
1️⃣ Serveur WebSocket intégré à Laravel.
2️⃣ Facile à configurer et utiliser, sans services externes.
3️⃣ Performances améliorées grâce à un fonctionnement asynchrone.
4️⃣ Support natif des Broadcasts avec Laravel Events.
5️⃣ Gestion des connexions sécurisée et efficace.
⚙️ Installation et Configuration
Laravel Reverb est inclus nativement dans Laravel 11, il suffit d’exécuter la commande suivante pour démarrer le serveur WebSocket :
bashCopierModifierphp artisan reverb:start
Par défaut, il fonctionne sur le port 6001.
Dans config/broadcasting.php, assure-toi que Reverb est bien configuré comme driver WebSocket :
phpCopierModifier'connections' => [
'reverb' => [
'driver' => 'reverb',
],
],
Ensuite, dans bootstrap.js, connecte Laravel Echo à Reverb :
jsCopierModifierimport Echo from 'laravel-echo';
window.Echo = new Echo({
broadcaster: 'reverb',
});
📡 Exemples d’utilisation
1️⃣ Diffusion d’un événement en temps réel
Dans Laravel, les événements peuvent être diffusés via WebSockets facilement :
📌 Créer un événement broadcastable
phpCopierModifieruse Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Foundation\Events\Dispatchable;
class MessageSent implements ShouldBroadcast
{
use Dispatchable, InteractsWithSockets;
public $message;
public function __construct($message)
{
$this->message = $message;
}
public function broadcastOn()
{
return ['chat-channel'];
}
}
📌 Diffuser l’événement
phpCopierModifierevent(new MessageSent('Hello World!'));
📌 Ecouter l’événement côté client
jsCopierModifierwindow.Echo.channel('chat-channel')
.listen('MessageSent', (event) => {
console.log('Nouveau message reçu :', event.message);
});
📌 Avantages de Laravel Reverb
✅ 100% Laravel : Pas besoin de services externes.
✅ Performance : Basé sur les processus asynchrones de Laravel Octane.
✅ Facilité de mise en place : Une simple commande et c’est parti !
🔮 Conclusion
Laravel Reverb est une révolution pour le développement en temps réel avec Laravel. Il simplifie la mise en place des WebSockets sans dépendances lourdes. Si tu développes une application nécessitant du temps réel (chat, notifications, tableaux de bord dynamiques), Reverb est une solution idéale !