commit
This commit is contained in:
parent
58056b7e98
commit
23afe9ad40
|
|
@ -3,9 +3,11 @@
|
|||
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 BeyondCode\LaravelWebSockets\LaravelEcho\Pusher\Dashboard;
|
||||
use Illuminate\Events\Dispatcher;
|
||||
|
||||
|
|
@ -21,6 +23,11 @@ class EventSubscriber
|
|||
);
|
||||
}
|
||||
|
||||
public function onChannelOccupied(ChannelOccupied $event)
|
||||
{
|
||||
Dashboard::occupied($event->connection, $event->channelId);
|
||||
}
|
||||
|
||||
public function onChannelVacated(ChannelVacated $event)
|
||||
{
|
||||
Dashboard::vacated($event->connection, $event->channelId);
|
||||
|
|
@ -36,10 +43,18 @@ class EventSubscriber
|
|||
Dashboard::connection($event->connection);
|
||||
}
|
||||
|
||||
public function onSubscribedToChannel(SubscribedToChannel $event)
|
||||
{
|
||||
Dashboard::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');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
<?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;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
<?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;
|
||||
}
|
||||
}
|
||||
|
|
@ -2,7 +2,9 @@
|
|||
|
||||
namespace BeyondCode\LaravelWebSockets\LaravelEcho\Pusher\Channels;
|
||||
|
||||
use BeyondCode\LaravelWebSockets\Events\ChannelOccupied;
|
||||
use BeyondCode\LaravelWebSockets\Events\ChannelVacated;
|
||||
use BeyondCode\LaravelWebSockets\Events\SubscribedToChannel;
|
||||
use BeyondCode\LaravelWebSockets\LaravelEcho\Pusher\Dashboard;
|
||||
use BeyondCode\LaravelWebSockets\LaravelEcho\Pusher\Exceptions\InvalidSignatureException;
|
||||
use Illuminate\Support\Collection;
|
||||
|
|
@ -66,13 +68,15 @@ class Channel
|
|||
|
||||
protected function saveConnection(ConnectionInterface $connection)
|
||||
{
|
||||
if (! $this->hasConnections()) {
|
||||
Dashboard::occupied($connection, $this->channelId);
|
||||
}
|
||||
$hadConnectionsPreviously = $this->hasConnections();
|
||||
|
||||
$this->subscriptions[$connection->socketId] = $connection;
|
||||
|
||||
Dashboard::subscribed($connection, $this->channelId);
|
||||
if (! $hadConnectionsPreviously) {
|
||||
event(new ChannelOccupied($connection, $this->channelId));
|
||||
}
|
||||
|
||||
event(new SubscribedToChannel($connection, $this->channelId));
|
||||
}
|
||||
|
||||
public function broadcast($payload)
|
||||
|
|
|
|||
Loading…
Reference in New Issue