diff --git a/src/Dashboard/EventHandler.php b/src/Dashboard/EventHandler.php deleted file mode 100644 index 460b2b6..0000000 --- a/src/Dashboard/EventHandler.php +++ /dev/null @@ -1,8 +0,0 @@ -connection, $event->channelId); + } + + public function onClientMessageSent(ClientMessageSent $event) + { + Dashboard::clientMessage($event->connection, $event->payload); + } + + public function subscribe(Dispatcher $events) + { + $events->listen(ChannelVacated::class, static::class . '@onChannelVacated'); + $events->listen(ClientMessageSent::class, static::class . '@onClientMessageSent'); + } +} \ No newline at end of file diff --git a/src/Events/ClientMessageSent.php b/src/Events/ClientMessageSent.php new file mode 100644 index 0000000..7c171ed --- /dev/null +++ b/src/Events/ClientMessageSent.php @@ -0,0 +1,22 @@ +connection = $connection; + + $this->payload = $payload; + } +} \ No newline at end of file diff --git a/src/LaravelEcho/Pusher/Channels/Channel.php b/src/LaravelEcho/Pusher/Channels/Channel.php index 759c83c..d7a1b3e 100644 --- a/src/LaravelEcho/Pusher/Channels/Channel.php +++ b/src/LaravelEcho/Pusher/Channels/Channel.php @@ -61,7 +61,6 @@ class Channel if (! $this->hasConnections()) { event(new ChannelVacated($connection, $this->channelId)); - Dashboard::vacated($connection, $this->channelId); } } diff --git a/src/LaravelEcho/WebSocket/Message.php b/src/LaravelEcho/WebSocket/Message.php index 5617f59..72197eb 100644 --- a/src/LaravelEcho/WebSocket/Message.php +++ b/src/LaravelEcho/WebSocket/Message.php @@ -2,6 +2,7 @@ namespace BeyondCode\LaravelWebSockets\LaravelEcho\WebSocket; +use BeyondCode\LaravelWebSockets\Events\ClientMessageSent; use BeyondCode\LaravelWebSockets\LaravelEcho\Pusher\Channels\ChannelManager; use BeyondCode\LaravelWebSockets\LaravelEcho\Pusher\Dashboard; use Ratchet\ConnectionInterface; @@ -30,7 +31,7 @@ class Message implements RespondableMessage public function respond() { if (starts_with($this->payload->event, 'client-')) { - Dashboard::clientMessage($this->connection, $this->payload); + event(new ClientMessageSent($this->connection, $this->payload)); $channel = $this->channelManager->find($this->connection->client->appId, $this->payload->channel); diff --git a/src/WebSocketsServiceProvider.php b/src/WebSocketsServiceProvider.php index 49a185e..5f1168f 100644 --- a/src/WebSocketsServiceProvider.php +++ b/src/WebSocketsServiceProvider.php @@ -2,6 +2,8 @@ namespace BeyondCode\LaravelWebSockets; +use BeyondCode\LaravelWebSockets\Dashboard\EventSubscriber; +use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\Gate; use Illuminate\Support\Facades\Route; use BeyondCode\LaravelWebSockets\ClientProviders\ClientProvider; @@ -27,6 +29,8 @@ class WebSocketsServiceProvider extends ServiceProvider $this->commands([ Console\StartWebSocketServer::class, ]); + + Event::subscribe(EventSubscriber::class); } protected function registerRoutes()