📊 Capítulo 18: Tempo Real com Laravel Reverb
Especialização Backend com PHP & Laravel
🗺️ O Servidor WebSocket Nativo Laravel Reverb
sequenceDiagram
autonumber
actor C as Cliente Web / Echo
participant R as Laravel Reverb (Servidor WebSocket em Go/PHP)
participant APP as Laravel API Backend
participant REDIS as Redis Pub/Sub
C->>R: Conexão WebSocket em wss://ws.meusite.com
R->>APP: Autentica canal privado (POST /broadcasting/auth)
APP-->>R: Autenticado com Sucesso!
Note over C,APP: Backend processa evento
APP->>REDIS: broadcast(new PedidoAtualizadoEvent($pedido))
REDIS->>R: Notifica Reverb
R-->>C: Envia JSON instantaneamente via WebSocket ⚡
🎯 Slide 1: O Que é o Laravel Reverb?
-
Servidor WebSocket Nativo: Lançado no ecossistema moderno do Laravel, escrito para alta concorrência e suportando dezenas de milhares de conexões abertas simultâneas.
- Zero Pusher/Serviços Pagos: Elimina custos com SaaS de WebSockets externos!
🎯 Slide 2: Eventos Transmissíveis com ShouldBroadcast
class PedidoAtualizadoEvent implements ShouldBroadcast {
use Dispatchable, InteractsWithSockets, SerializesModels;
public function __construct(public Pedido $pedido) {}
public function broadcastOn(): array {
return [
new PrivateChannel('pedidos.' . $this->pedido->usuario_id),
];
}
}
🎯 Slide 3: Integração no Frontend com Laravel Echo
import Echo from 'laravel-echo';
window.Echo.private(`pedidos.${userId}`)
.listen('PedidoAtualizadoEvent', (e) => {
console.log('Status atualizado:', e.pedido.status);
});
Slide 1 de 1
Atalhos: ← → Navegar • Espaço Avançar • F Tela Cheia • Home Início • End Fim