import Echo from 'laravel-echo';
const echo = new Echo({ broadcaster: 'reverb', ... });
const realtime = createEchoBridge({
echo,
channels: [
{ name: 'orders', type: 'private', events: ['OrderShipped', 'OrderCancelled'] },
{ name: 'lobby', type: 'presence', events: ['MessagePosted'] },
],
});
realtime.install(bus); // OrderShipped → bus.emit('OrderShipped', payload)
// on teardown:
realtime.teardown();
createEchoBridge — wire Laravel Echo / Reverb realtime channels to the bus.
Protocol-aware over the generic WS bridge: subscribes public / private / presence channels and routes each broadcast to
bus.emit()(or a command viaonBroadcast). Presence membership (here/joining/leaving) is emitted too. Receive-only by design — outbound commands still go through the HTTP bridge. Pass your own Echo instance; the bridge never imports laravel-echo, so non-Laravel consumers don't pay for it.