mercureact/src/Broker/SseSubscriber.php

27 lines
625 B
PHP

<?php
namespace NoccyLabs\Mercureact\Broker;
use NoccyLabs\SimpleJWT\JWTToken;
use Psr\Http\Message\ServerRequestInterface;
use React\Stream\WritableStreamInterface;
class SseSubscriber implements SubscriberInterface
{
public function __construct(
private WritableStreamInterface $stream,
private ServerRequestInterface $request,
)
{
}
public function deliver(Message $message): void
{
$this->stream->write($message->toString());
}
public function isAuthorized(): bool
{
return $this->request->getAttribute('authorization') instanceof JWTToken;
}
}