laravel-realtime maintained by pkc
pkc/laravel-realtime
Reusable Laravel realtime broadcasting helpers for admin dashboards using Laravel Reverb and Laravel Echo.
Features
Realtime::toAdmins($event, $payload)helper- Base
AdminBroadcastevent (ShouldBroadcastNowon privateadminschannel) - Configurable admin channel authorization (role attribute)
- Shared Echo bootstrap JS for Reverb
Requirements
- PHP 8.2+
- Laravel 11 or 12
- Host app:
laravel/reverb,laravel-echo,pusher-js
Install (Packagist)
composer require pkc/laravel-realtime
php artisan vendor:publish --tag=realtime-config
Install (path repository / local development)
{
"repositories": [
{
"type": "path",
"url": "../knr_laravel_realtime"
}
],
"require": {
"pkc/laravel-realtime": "@dev"
}
}
composer require pkc/laravel-realtime:@dev
php artisan vendor:publish --tag=realtime-config
Host setup
- Install Reverb:
composer require laravel/reverb && php artisan reverb:install - Set
BROADCAST_CONNECTION=reverbandREVERB_*/VITE_REVERB_*in.env - Ensure broadcasting auth routes are enabled
- Import Echo helper in
resources/js/bootstrap.js:
import Echo from 'laravel-echo';
import Pusher from 'pusher-js';
import { configureRealtimeEcho } from '../../vendor/pkc/laravel-realtime/resources/js/echo.js';
configureRealtimeEcho(Echo, Pusher);
Host app must npm install laravel-echo pusher-js.
- Run
php artisan reverb:startalongside your app server
Usage
use Knr\Realtime\Facades\Realtime;
Realtime::toAdmins('OrderPlaced', [
'order_id' => $order->id,
'order_number' => $order->order_number,
]);
Or extend Knr\Realtime\Events\AdminBroadcast in your app.
Client:
window.Echo.private('admins').listen('.OrderPlaced', (e) => {
console.log(e);
});
Config
See config/realtime.php for channel name and admin role attribute.
License
MIT