Refactored subscribers to own namespace
This commit is contained in:
42
src/Broker/Subscriber/SseSubscriber.php
Normal file
42
src/Broker/Subscriber/SseSubscriber.php
Normal file
@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
namespace NoccyLabs\Mercureact\Broker\Subscriber;
|
||||
|
||||
use NoccyLabs\Mercureact\Broker\Message;
|
||||
use NoccyLabs\SimpleJWT\JWTToken;
|
||||
use Psr\Http\Message\ServerRequestInterface;
|
||||
use React\Stream\WritableStreamInterface;
|
||||
use Symfony\Component\Uid\Uuid;
|
||||
|
||||
class SseSubscriber implements SubscriberInterface
|
||||
{
|
||||
private string $id;
|
||||
|
||||
public function __construct(
|
||||
private WritableStreamInterface $stream,
|
||||
private ServerRequestInterface $request,
|
||||
)
|
||||
{
|
||||
$this->id = (string)Uuid::v7();
|
||||
}
|
||||
|
||||
public function deliver(Message $message): void
|
||||
{
|
||||
$this->stream->write($message->toString());
|
||||
}
|
||||
|
||||
public function isAuthorized(): bool
|
||||
{
|
||||
return $this->request->getAttribute('authorized');
|
||||
}
|
||||
|
||||
public function getPayload(): array
|
||||
{
|
||||
return $this->request->getAttribute('mercure.payload')??[];
|
||||
}
|
||||
|
||||
public function getId(): string
|
||||
{
|
||||
return "urn:uuid:".$this->id;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user