rdcstarr / superpower-broadcasting
UI realtime broadcasting for Laravel + Livewire. UiEvent + UserChannelEvent broadcast classes and the #[OnUi] attribute for Livewire computed properties.
Package info
github.com/rdcstarr/superpower-broadcasting
pkg:composer/rdcstarr/superpower-broadcasting
Requires
- php: ^8.3
- illuminate/broadcasting: ^13.0
- illuminate/contracts: ^13.0
- illuminate/database: ^13.0
- illuminate/queue: ^13.0
- illuminate/support: ^13.0
- livewire/livewire: ^4.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- orchestra/testbench: ^11.0
- pestphp/pest: ^4.0
- pestphp/pest-plugin-laravel: ^4.1
README
UI realtime broadcasting primitives for Laravel + Livewire. Provides UiEvent (global / scoped channel broadcasts) and UserChannelEvent for per-user user.{id} channels, plus the #[OnUi] attribute that wires Livewire #[Computed] properties to broadcast events without manual Echo plumbing.
Install
composer require rdcstarr/superpower-broadcasting
Requires BROADCAST_CONNECTION=reverb (or another Pusher-compatible driver) and Livewire 4+ with the Echo plugin enabled.
Usage
Dispatch from an Action:
use Rdcstarr\SuperpowerBroadcasting\Events\UiEvent; UiEvent::toModel($user, 'tickets', [ 'entity' => 'ticket', 'action' => 'created', 'id' => $ticket->id, ]);
Listen in a Livewire component via the #[OnUi] attribute:
use Livewire\Attributes\Computed; use Rdcstarr\SuperpowerBroadcasting\Attributes\OnUi; use App\Models\User; #[Computed] #[OnUi('tickets', User::class)] public function unreadCount(): int { return auth()->user()->tickets()->where('is_read', false)->count(); }
Personal toolkit — no support guarantees.