This commit is contained in:
Marcel Pociot 2018-11-29 11:59:17 +01:00
parent c1303ff667
commit 606f09f444
14 changed files with 11 additions and 220 deletions

View File

@ -1,59 +0,0 @@
<?php
namespace BeyondCode\LaravelWebSockets\Dashboard;
use BeyondCode\LaravelWebSockets\Events\ApiMessageSent;
use BeyondCode\LaravelWebSockets\Events\ChannelOccupied;
use BeyondCode\LaravelWebSockets\Events\ChannelVacated;
use BeyondCode\LaravelWebSockets\Events\ClientMessageSent;
use BeyondCode\LaravelWebSockets\Events\ConnectionEstablished;
use BeyondCode\LaravelWebSockets\Events\SubscribedToChannel;
use Illuminate\Events\Dispatcher;
class EventSubscriber
{
public function onApiMessageSent(ApiMessageSent $event)
{
DashboardLogger::apiMessage(
$event->appId,
$event->channeldId,
$event->name,
$event->data
);
}
public function onChannelOccupied(ChannelOccupied $event)
{
DashboardLogger::occupied($event->connection, $event->channelId);
}
public function onChannelVacated(ChannelVacated $event)
{
DashboardLogger::vacated($event->connection, $event->channelId);
}
public function onClientMessageSent(ClientMessageSent $event)
{
DashboardLogger::clientMessage($event->connection, $event->payload);
}
public function onConnectionEstablished(ConnectionEstablished $event)
{
DashboardLogger::connection($event->connection);
}
public function onSubscribedToChannel(SubscribedToChannel $event)
{
DashboardLogger::subscribed($event->connection, $event->channelId);
}
public function subscribe(Dispatcher $events)
{
$events->listen(ApiMessageSent::class, static::class. '@onApiMessageSent');
$events->listen(ChannelOccupied::class, static::class . '@onChannelOccupied');
$events->listen(ChannelVacated::class, static::class . '@onChannelVacated');
$events->listen(ClientMessageSent::class, static::class . '@onClientMessageSent');
$events->listen(ConnectionEstablished::class, static::class . '@onConnectionEstablished');
$events->listen(SubscribedToChannel::class, static::class . '@onSubscribedToChannel');
}
}

View File

@ -1,25 +0,0 @@
<?php
namespace BeyondCode\LaravelWebSockets\Events;
use Ratchet\ConnectionInterface;
use stdClass;
class ApiMessageSent
{
public $appId;
public $channeldId;
public $name;
public $data;
public function __construct($appId, $channeldId, $name, $data)
{
$this->appId = $appId;
$this->channeldId = $channeldId;
$this->name = $name;
$this->data = $data;
}
}

View File

@ -1,21 +0,0 @@
<?php
namespace BeyondCode\LaravelWebSockets\Events;
use Ratchet\ConnectionInterface;
class ChannelOccupied
{
/** @var \Ratchet\ConnectionInterface */
public $connection;
/** @var string */
public $channelId;
public function __construct(ConnectionInterface $connection, string $channelId)
{
$this->connection = $connection;
$this->channelId = $channelId;
}
}

View File

@ -1,21 +0,0 @@
<?php
namespace BeyondCode\LaravelWebSockets\Events;
use Ratchet\ConnectionInterface;
class ChannelVacated
{
/** @var \Ratchet\ConnectionInterface */
public $connection;
/** @var string */
public $channelId;
public function __construct(ConnectionInterface $connection, string $channelId)
{
$this->connection = $connection;
$this->channelId = $channelId;
}
}

View File

@ -1,22 +0,0 @@
<?php
namespace BeyondCode\LaravelWebSockets\Events;
use Ratchet\ConnectionInterface;
use stdClass;
class ClientMessageSent
{
/** @var \Ratchet\ConnectionInterface */
public $connection;
/** @var string */
public $payload;
public function __construct(ConnectionInterface $connection, stdClass $payload)
{
$this->connection = $connection;
$this->payload = $payload;
}
}

View File

@ -1,17 +0,0 @@
<?php
namespace BeyondCode\LaravelWebSockets\Events;
use Ratchet\ConnectionInterface;
use stdClass;
class ConnectionEstablished
{
/** @var \Ratchet\ConnectionInterface */
public $connection;
public function __construct(ConnectionInterface $connection)
{
$this->connection = $connection;
}
}

View File

@ -1,21 +0,0 @@
<?php
namespace BeyondCode\LaravelWebSockets\Events;
use Ratchet\ConnectionInterface;
class ExceptionThrown
{
/** @var \Ratchet\ConnectionInterface */
public $connection;
/** @var \Exception */
public $exception;
public function __construct(ConnectionInterface $connection, \Exception $exception)
{
$this->connection = $connection;
$this->exception = $exception;
}
}

View File

@ -1,21 +0,0 @@
<?php
namespace BeyondCode\LaravelWebSockets\Events;
use Ratchet\ConnectionInterface;
class SubscribedToChannel
{
/** @var \Ratchet\ConnectionInterface */
public $connection;
/** @var string */
public $channelId;
public function __construct(ConnectionInterface $connection, string $channelId)
{
$this->connection = $connection;
$this->channelId = $channelId;
}
}

View File

@ -3,6 +3,7 @@
namespace BeyondCode\LaravelWebSockets\HttpApi\Controllers; namespace BeyondCode\LaravelWebSockets\HttpApi\Controllers;
use BeyondCode\LaravelWebSockets\ClientProviders\Client; use BeyondCode\LaravelWebSockets\ClientProviders\Client;
use BeyondCode\LaravelWebSockets\Dashboard\DashboardLogger;
use BeyondCode\LaravelWebSockets\Events\ExceptionThrown; use BeyondCode\LaravelWebSockets\Events\ExceptionThrown;
use BeyondCode\LaravelWebSockets\QueryParameters; use BeyondCode\LaravelWebSockets\QueryParameters;
use Exception; use Exception;
@ -59,8 +60,6 @@ abstract class Controller implements HttpServerInterface
function onError(ConnectionInterface $connection, Exception $exception) function onError(ConnectionInterface $connection, Exception $exception)
{ {
event(new ExceptionThrown($connection, $exception));
if (! $exception instanceof HttpException) { if (! $exception instanceof HttpException) {
return; return;
} }

View File

@ -21,12 +21,12 @@ class TriggerEventController extends Controller
'data' => $request->json()->get('data'), 'data' => $request->json()->get('data'),
], $request->json()->get('socket_id')); ], $request->json()->get('socket_id'));
event(new ApiMessageSent( DashboardLogger::apiMessage(
$request->appId, $request->appId,
$channelId, $channelId,
$request->json()->get('name'), $request->json()->get('name'),
$request->json()->get('data') $request->json()->get('data')
)); );
} }
return $request->json()->all(); return $request->json()->all();

View File

@ -2,6 +2,7 @@
namespace BeyondCode\LaravelWebSockets\WebSockets\Channels; namespace BeyondCode\LaravelWebSockets\WebSockets\Channels;
use BeyondCode\LaravelWebSockets\Dashboard\DashboardLogger;
use BeyondCode\LaravelWebSockets\Events\ChannelOccupied; use BeyondCode\LaravelWebSockets\Events\ChannelOccupied;
use BeyondCode\LaravelWebSockets\Events\ChannelVacated; use BeyondCode\LaravelWebSockets\Events\ChannelVacated;
use BeyondCode\LaravelWebSockets\Events\SubscribedToChannel; use BeyondCode\LaravelWebSockets\Events\SubscribedToChannel;
@ -64,7 +65,7 @@ class Channel
unset($this->subscriptions[$connection->socketId]); unset($this->subscriptions[$connection->socketId]);
if (! $this->hasConnections()) { if (! $this->hasConnections()) {
event(new ChannelVacated($connection, $this->channelId)); DashboardLogger::vacated($connection, $this->channelId);
} }
} }
@ -75,10 +76,10 @@ class Channel
$this->subscriptions[$connection->socketId] = $connection; $this->subscriptions[$connection->socketId] = $connection;
if (! $hadConnectionsPreviously) { if (! $hadConnectionsPreviously) {
event(new ChannelOccupied($connection, $this->channelId)); DashboardLogger::occupied($connection, $this->channelId);
} }
event(new SubscribedToChannel($connection, $this->channelId)); DashboardLogger::subscribed($connection, $this->channelId);
} }
public function broadcast($payload) public function broadcast($payload)

View File

@ -2,6 +2,7 @@
namespace BeyondCode\LaravelWebSockets\WebSockets\Messages; namespace BeyondCode\LaravelWebSockets\WebSockets\Messages;
use BeyondCode\LaravelWebSockets\Dashboard\DashboardLogger;
use BeyondCode\LaravelWebSockets\Events\ClientMessageSent; use BeyondCode\LaravelWebSockets\Events\ClientMessageSent;
use BeyondCode\LaravelWebSockets\WebSockets\Channels\ChannelManager; use BeyondCode\LaravelWebSockets\WebSockets\Channels\ChannelManager;
use Ratchet\ConnectionInterface; use Ratchet\ConnectionInterface;
@ -33,7 +34,7 @@ class Message implements RespondableMessage
return; return;
} }
event(new ClientMessageSent($this->connection, $this->payload)); DashboardLogger::clientMessage($this->connection, $this->payload);
$channel = $this->channelManager->find($this->connection->client->appId, $this->payload->channel); $channel = $this->channelManager->find($this->connection->client->appId, $this->payload->channel);

View File

@ -2,6 +2,7 @@
namespace BeyondCode\LaravelWebSockets\WebSockets; namespace BeyondCode\LaravelWebSockets\WebSockets;
use BeyondCode\LaravelWebSockets\Dashboard\DashboardLogger;
use BeyondCode\LaravelWebSockets\Events\ConnectionEstablished; use BeyondCode\LaravelWebSockets\Events\ConnectionEstablished;
use BeyondCode\LaravelWebSockets\WebSockets\Exceptions\WebSocketException; use BeyondCode\LaravelWebSockets\WebSockets\Exceptions\WebSocketException;
use BeyondCode\LaravelWebSockets\WebSockets\Messages\RespondableMessageFactory; use BeyondCode\LaravelWebSockets\WebSockets\Messages\RespondableMessageFactory;
@ -85,7 +86,7 @@ class WebSocketHandler implements MessageComponentInterface
]) ])
])); ]));
event(new ConnectionEstablished($connection)); DashboardLogger::connection($connection);
return $this; return $this;
} }

View File

@ -2,13 +2,11 @@
namespace BeyondCode\LaravelWebSockets; namespace BeyondCode\LaravelWebSockets;
use BeyondCode\LaravelWebSockets\Dashboard\EventSubscriber;
use BeyondCode\LaravelWebSockets\Dashboard\Http\Controllers\AuthenticateDashboard; use BeyondCode\LaravelWebSockets\Dashboard\Http\Controllers\AuthenticateDashboard;
use BeyondCode\LaravelWebSockets\Dashboard\Http\Controllers\SendMessage; use BeyondCode\LaravelWebSockets\Dashboard\Http\Controllers\SendMessage;
use BeyondCode\LaravelWebSockets\Dashboard\Http\Controllers\ShowDashboard; use BeyondCode\LaravelWebSockets\Dashboard\Http\Controllers\ShowDashboard;
use BeyondCode\LaravelWebSockets\Dashboard\Http\Middleware\Authorize; use BeyondCode\LaravelWebSockets\Dashboard\Http\Middleware\Authorize;
use BeyondCode\LaravelWebSockets\Server\Router; use BeyondCode\LaravelWebSockets\Server\Router;
use Illuminate\Support\Facades\Event;
use Illuminate\Support\Facades\Gate; use Illuminate\Support\Facades\Gate;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
use BeyondCode\LaravelWebSockets\ClientProviders\ClientProvider; use BeyondCode\LaravelWebSockets\ClientProviders\ClientProvider;
@ -32,8 +30,6 @@ class WebSocketsServiceProvider extends ServiceProvider
$this->commands([ $this->commands([
Console\StartWebSocketServer::class, Console\StartWebSocketServer::class,
]); ]);
Event::subscribe(EventSubscriber::class);
} }
public function register() public function register()