diff --git a/src/Dashboard/EventSubscriber.php b/src/Dashboard/EventSubscriber.php index 7f75044..9063c45 100644 --- a/src/Dashboard/EventSubscriber.php +++ b/src/Dashboard/EventSubscriber.php @@ -2,6 +2,7 @@ namespace BeyondCode\LaravelWebSockets\Dashboard; +use BeyondCode\LaravelWebSockets\Events\ApiMessageSent; use BeyondCode\LaravelWebSockets\Events\ChannelVacated; use BeyondCode\LaravelWebSockets\Events\ClientMessageSent; use BeyondCode\LaravelWebSockets\LaravelEcho\Pusher\Dashboard; @@ -9,6 +10,16 @@ use Illuminate\Events\Dispatcher; class EventSubscriber { + public function onApiMessageSent(ApiMessageSent $event) + { + Dashboard::apiMessage( + $event->appId, + $event->channeldId, + $event->name, + $event->data + ); + } + public function onChannelVacated(ChannelVacated $event) { Dashboard::vacated($event->connection, $event->channelId); @@ -21,6 +32,7 @@ class EventSubscriber public function subscribe(Dispatcher $events) { + $events->listen(ApiMessageSent::class, static::class. '@onApiMessageSent'); $events->listen(ChannelVacated::class, static::class . '@onChannelVacated'); $events->listen(ClientMessageSent::class, static::class . '@onClientMessageSent'); } diff --git a/src/Events/ApiMessageSent.php b/src/Events/ApiMessageSent.php new file mode 100644 index 0000000..68f77d6 --- /dev/null +++ b/src/Events/ApiMessageSent.php @@ -0,0 +1,25 @@ +appId = $appId; + + $this->channeldId = $channeldId; + + $this->name = $name; + + $this->data = $data; + } +} \ No newline at end of file diff --git a/src/LaravelEcho/Http/Controllers/TriggerEvent.php b/src/LaravelEcho/Http/Controllers/TriggerEvent.php index 7630ee1..9e0cf59 100644 --- a/src/LaravelEcho/Http/Controllers/TriggerEvent.php +++ b/src/LaravelEcho/Http/Controllers/TriggerEvent.php @@ -2,7 +2,7 @@ namespace BeyondCode\LaravelWebSockets\LaravelEcho\Http\Controllers; -use BeyondCode\LaravelWebSockets\LaravelEcho\Pusher\Dashboard; +use BeyondCode\LaravelWebSockets\Events\ApiMessageSent; use Illuminate\Http\Request; class TriggerEvent extends EchoController @@ -12,13 +12,6 @@ class TriggerEvent extends EchoController $this->ensureValidSignature($request); foreach ($request->json()->get('channels', []) as $channelId) { - Dashboard::apiMessage( - $request->appId, - $channelId, - $request->json()->get('name'), - $request->json()->get('data') - ); - $channel = $this->channelManager->find($request->appId, $channelId); optional($channel)->broadcastToEveryoneExcept([ @@ -26,6 +19,13 @@ class TriggerEvent extends EchoController 'event' => $request->json()->get('name'), 'data' => $request->json()->get('data'), ], $request->json()->get('socket_id')); + + event(new ApiMessageSent( + $request->appId, + $channelId, + $request->json()->get('name'), + $request->json()->get('data') + )); } return $request->json()->all();