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
|
|
|
|
2019-02-27 14:27:21 +00:00
|
|
|
use Illuminate\Support\Str;
|
2018-11-21 22:47:46 +00:00
|
|
|
use Ratchet\ConnectionInterface;
|
|
|
|
|
use Ratchet\RFC6455\Messaging\MessageInterface;
|
2018-12-04 21:22:33 +00:00
|
|
|
use BeyondCode\LaravelWebSockets\WebSockets\Channels\ChannelManager;
|
2018-11-21 22:47:46 +00:00
|
|
|
|
2018-12-01 14:10:01 +00:00
|
|
|
class PusherMessageFactory
|
2018-11-21 22:47:46 +00:00
|
|
|
{
|
|
|
|
|
public static function createForMessage(
|
|
|
|
|
MessageInterface $message,
|
|
|
|
|
ConnectionInterface $connection,
|
2018-12-01 14:09:05 +00:00
|
|
|
ChannelManager $channelManager): PusherMessage
|
2018-11-21 22:47:46 +00:00
|
|
|
{
|
|
|
|
|
$payload = json_decode($message->getPayload());
|
|
|
|
|
|
2019-02-27 14:27:21 +00:00
|
|
|
return Str::startsWith($payload->event, 'pusher:')
|
2018-12-01 13:56:16 +00:00
|
|
|
? new PusherChannelProtocolMessage($payload, $connection, $channelManager)
|
|
|
|
|
: new PusherClientMessage($payload, $connection, $channelManager);
|
2018-11-21 22:47:46 +00:00
|
|
|
}
|
2018-12-04 21:22:33 +00:00
|
|
|
}
|