Looking to hire Laravel developers? Try LaraJobs

laravel-realtime maintained by pkc

Description
Reusable Laravel realtime broadcasting helpers for admin dashboards (Reverb + Echo).
Author
Last update
2026/08/22 15:35 (dev-main)
License
Downloads
3

Comments
comments powered by Disqus

pkc/laravel-realtime

Reusable Laravel realtime broadcasting helpers for admin dashboards using Laravel Reverb and Laravel Echo.

Features

  • Realtime::toAdmins($event, $payload) helper
  • Base AdminBroadcast event (ShouldBroadcastNow on private admins channel)
  • 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

  1. Install Reverb: composer require laravel/reverb && php artisan reverb:install
  2. Set BROADCAST_CONNECTION=reverb and REVERB_* / VITE_REVERB_* in .env
  3. Ensure broadcasting auth routes are enabled
  4. 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.

  1. Run php artisan reverb:start alongside 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