reactphp-x / sse-middleware
v1.0.0
2024-08-10 00:51 UTC
Requires
- react/http: ^1.9
This package is auto-updated.
Last update: 2024-12-10 02:35:44 UTC
README
install
composer require reactphp-x/sse-middleware -vvv
Usage
<?php require __DIR__ . '/../vendor/autoload.php'; use ReactphpX\SseMiddleware\SseMiddleware; use ReactphpX\SseMiddleware\ServerSentEvents; use React\Stream\ThroughStream; use Psr\Http\Message\ServerRequestInterface; use React\EventLoop\Loop; $http = new React\Http\HttpServer(function (ServerRequestInterface $request) { $stream = new ThroughStream(); $timer = Loop::addPeriodicTimer(1, function () use ($stream) { //data for example ['event'=>'ping', 'data' => 'some thing', 'id' => 1000, 'retry' => 5000] $stream->write(new ServerSentEvents(['data' => date('Y-m-d H:i:s')])); }); $stream->on('close', function () use ($timer) { Loop::cancelTimer($timer); }); Loop::addTimer(10, function () use ($stream) { $stream->end(); }); return (new SseMiddleware($stream, [ 'Access-Control-Allow-Origin' => '*', ]))($request); }); $socket = new React\Socket\SocketServer('0.0.0.0:8090'); $http->listen($socket);
License
MIT