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