GlosarioFrontend

¿Qué es Broadcasting?

Broadcasting en Laravel permite transmitir eventos del servidor al cliente en tiempo real usando WebSockets, con soporte para canales publicos, privados y de presencia mediante Pusher, Ably o Laravel Reverb.

Broadcasting

El broadcasting permite compartir eventos del lado del servidor con el frontend en tiempo real usando WebSockets. Es esencial para funcionalidades como chats, notificaciones en tiempo real y actualizaciones en vivo.

Configuracion

Laravel soporta Pusher, Ably y Laravel Reverb (solucion oficial open-source) como drivers de broadcasting.

// .env
BROADCAST_CONNECTION=reverb

Crear un evento broadcasteable

class MessageSent implements ShouldBroadcast
{
    use InteractsWithSockets, SerializesModels;

    public function __construct(
        public Message $message
    ) {}

    public function broadcastOn(): array
    {
        return [
            new PrivateChannel('chat.' . $this->message->room_id),
        ];
    }

    public function broadcastWith(): array
    {
        return [
            'id' => $this->message->id,
            'body' => $this->message->body,
            'user' => $this->message->user->name,
            'created_at' => $this->message->created_at->toISOString(),
        ];
    }
}

Escuchar en el frontend

Echo.private('chat.' + roomId)
    .listen('MessageSent', (event) => {
        messages.push(event);
    });

Laravel Echo es la libreria JavaScript oficial que facilita la suscripcion a canales y la escucha de eventos. Combinado con Laravel Reverb, ofrece una solucion completa y autoalojada para WebSockets.