2018-11-21 22:47:46 +00:00
|
|
|
<?php
|
|
|
|
|
|
2018-11-27 15:11:12 +00:00
|
|
|
namespace BeyondCode\LaravelWebSockets\WebSockets\Messages;
|
2018-11-21 22:47:46 +00:00
|
|
|
|
2018-11-29 10:59:17 +00:00
|
|
|
use BeyondCode\LaravelWebSockets\Dashboard\DashboardLogger;
|
2018-11-26 21:05:24 +00:00
|
|
|
use BeyondCode\LaravelWebSockets\Events\ClientMessageSent;
|
2018-11-27 15:35:28 +00:00
|
|
|
use BeyondCode\LaravelWebSockets\WebSockets\Channels\ChannelManager;
|
2018-11-21 22:47:46 +00:00
|
|
|
use Ratchet\ConnectionInterface;
|
|
|
|
|
use stdClass;
|
|
|
|
|
|
|
|
|
|
class Message implements RespondableMessage
|
|
|
|
|
{
|
|
|
|
|
/** \stdClass */
|
|
|
|
|
protected $payload;
|
|
|
|
|
|
|
|
|
|
/** @var \Ratchet\ConnectionInterface */
|
|
|
|
|
protected $connection;
|
|
|
|
|
|
2018-11-27 15:43:41 +00:00
|
|
|
/** @var \BeyondCode\LaravelWebSockets\WebSockets\Channels\ChannelManager */
|
2018-11-21 22:47:46 +00:00
|
|
|
protected $channelManager;
|
|
|
|
|
|
|
|
|
|
public function __construct(stdClass $payload, ConnectionInterface $connection, ChannelManager $channelManager)
|
|
|
|
|
{
|
|
|
|
|
$this->payload = $payload;
|
|
|
|
|
|
|
|
|
|
$this->connection = $connection;
|
|
|
|
|
|
|
|
|
|
$this->channelManager = $channelManager;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function respond()
|
|
|
|
|
{
|
2018-11-26 23:13:22 +00:00
|
|
|
if (!starts_with($this->payload->event, 'client-')) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
2018-11-25 21:24:31 +00:00
|
|
|
|
2018-11-29 10:59:17 +00:00
|
|
|
DashboardLogger::clientMessage($this->connection, $this->payload);
|
2018-11-21 22:47:46 +00:00
|
|
|
|
2018-11-26 23:13:22 +00:00
|
|
|
$channel = $this->channelManager->find($this->connection->client->appId, $this->payload->channel);
|
|
|
|
|
|
|
|
|
|
optional($channel)->broadcast($this->payload);
|
2018-11-21 22:47:46 +00:00
|
|
|
}
|
|
|
|
|
}
|