pkc/laravel-realtime

Reusable Laravel realtime broadcasting helpers for admin dashboards (Reverb + Echo).

Maintainers

Package info

github.com/laradevsumon/knr_laravel_realtime

pkg:composer/pkc/laravel-realtime

Transparency log

Statistics

Installs: 3

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.1.0 2026-08-22 13:35 UTC

This package is auto-updated.

Last update: 2026-08-22 13:36:58 UTC


README

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