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

View File

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

View File

@ -2,6 +2,7 @@
namespace BeyondCode\LaravelWebSockets\WebSockets\Channels;
use BeyondCode\LaravelWebSockets\Dashboard\DashboardLogger;
use BeyondCode\LaravelWebSockets\Events\ChannelOccupied;
use BeyondCode\LaravelWebSockets\Events\ChannelVacated;
use BeyondCode\LaravelWebSockets\Events\SubscribedToChannel;
@ -64,7 +65,7 @@ class Channel
unset($this->subscriptions[$connection->socketId]);
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;
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)

View File

@ -2,6 +2,7 @@
namespace BeyondCode\LaravelWebSockets\WebSockets\Messages;
use BeyondCode\LaravelWebSockets\Dashboard\DashboardLogger;
use BeyondCode\LaravelWebSockets\Events\ClientMessageSent;
use BeyondCode\LaravelWebSockets\WebSockets\Channels\ChannelManager;
use Ratchet\ConnectionInterface;
@ -33,7 +34,7 @@ class Message implements RespondableMessage
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);

View File

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

View File

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