-
Notifications
You must be signed in to change notification settings - Fork 3
Events
ZILLEALI edited this page May 20, 2026
·
1 revision
Laravel events fired by zilleali/mikrotik-laravel.
| Event | Fired When |
|---|---|
SessionCreated |
PPPoE/Hotspot session manually dispatched |
SessionDisconnected |
PPPoE/Hotspot session manually dispatched |
RouterConnected |
Successful connection to router |
RouterUnreachable |
Router unreachable after all retry attempts |
Register listeners in EventServiceProvider:
use ZillEAli\MikrotikLaravel\Events\SessionCreated;
use ZillEAli\MikrotikLaravel\Events\SessionDisconnected;
use ZillEAli\MikrotikLaravel\Events\RouterConnected;
use ZillEAli\MikrotikLaravel\Events\RouterUnreachable;
protected $listen = [
SessionCreated::class => [
UpdateSubscriberStatusListener::class,
LogSessionListener::class,
],
SessionDisconnected::class => [
UpdateSubscriberStatusListener::class,
],
RouterConnected::class => [
LogRouterConnectionListener::class,
],
RouterUnreachable::class => [
SendNocAlertListener::class,
LogRouterDownListener::class,
],
];Fired when a PPPoE or Hotspot session starts. Must be dispatched manually from your application.
MikroTik::dispatchSessionCreated(
username: 'ali-home',
ip: '10.0.0.1',
service: 'pppoe', // 'pppoe' or 'hotspot'
mac: 'AA:BB:CC:DD:EE:FF'
);Event properties:
$event->username; // 'ali-home'
$event->ip; // '10.0.0.1'
$event->router; // 'default' or named router
$event->service; // 'pppoe' or 'hotspot'
$event->macAddress; // 'AA:BB:CC:DD:EE:FF' or nullFired when a PPPoE or Hotspot session ends.
MikroTik::dispatchSessionDisconnected(
username: 'ali-home',
ip: '10.0.0.1',
uptime: '2h14m',
reason: 'manual'
);Event properties:
$event->username; // 'ali-home'
$event->router; // 'default'
$event->ip; // '10.0.0.1' or null
$event->uptime; // '2h14m' or null
$event->reason; // 'manual', 'timeout', 'idle', etc.Fired automatically when a connection to a router succeeds.
Event properties:
$event->host; // '192.168.88.1'
$event->port; // 8728
$event->router; // 'default' or named routerExample listener:
class LogRouterConnectionListener
{
public function handle(RouterConnected $event): void
{
Log::info("Router connected: {$event->router} ({$event->host}:{$event->port})");
}
}Fired automatically when all retry attempts fail.
Event properties:
$event->host; // '192.168.88.1'
$event->port; // 8728
$event->router; // 'default' or named router
$event->attempts; // 3
$event->error; // 'Connection refused'
$event->exception; // ConnectionException instance or nullExample listener — NOC alert:
class SendNocAlertListener
{
public function handle(RouterUnreachable $event): void
{
// Send alert to NOC team
Notification::send(
User::role('noc')->get(),
new RouterDownNotification($event->router, $event->host)
);
Log::critical("Router unreachable: {$event->router}", [
'host' => $event->host,
'attempts' => $event->attempts,
'error' => $event->error,
]);
}
}← Configuration | Artisan Commands →
📝 Found an error or missing info?
Edit this page or open an issue to suggest improvements.