roadrunner-php/centrifugo
PHP client for Centrifugo with RoadRunner integration, helping you publish messages and manage real-time channels from your app. Lightweight package aimed at fast, scalable WebSocket/SSE push in PHP services.
Full Changelog: https://github.com/roadrunner-php/centrifugo/compare/v2.2.0...2.2.1
Full Changelog: https://github.com/roadrunner-php/centrifugo/compare/v2.1.0...v2.2.0
Full Changelog: https://github.com/roadrunner-php/centrifugo/compare/v2.0.1...v2.1.0
RoadRunner\Centrifugo\Payload\Disconnect class, the reconnect parameter is declared as deprecated and is no longer used.Full Changelog: https://github.com/roadrunner-php/centrifugo/compare/2.0.0...v2.0.1
Local proto DTO files were replaced with files from roadrunner-php/roadrunner-api-dto package
RoadRunner\Centrifugo\Service\DTO\... => RoadRunner\KV\DTO\V1\...
RoadRunner\Centrifugo\DTO\... => RoadRunner\Centrifugal\Proxy\DTO\V1\...
<?php
require __DIR__ . '/vendor/autoload.php';
use RoadRunner\Centrifugo\CentrifugoWorker;
use RoadRunner\Centrifugo\Payload;
use RoadRunner\Centrifugo\Request;
use RoadRunner\Centrifugo\Request\RequestFactory;
use Spiral\RoadRunner\Worker;
$worker = Worker::create();
$requestFactory = new RequestFactory($worker);
// Create a new Centrifugo Worker from global environment
$centrifugoWorker = new CentrifugoWorker($worker, $requestFactory);
while ($request = $centrifugoWorker->waitRequest()) {
if ($request instanceof Request\SubRefresh) {
try {
// Do something
$request->respond(new Payload\SubRefreshResponse(
// ...
));
} catch (\Throwable $e) {
$request->error($e->getCode(), $e->getMessage());
}
continue;
}
}
Note Read more about Sub Refresh request on the official documentation
by @butschster in https://github.com/roadrunner-php/centrifugo/pull/8
<?php
require __DIR__ . '/vendor/autoload.php';
use RoadRunner\Centrifugo\CentrifugoWorker;
use RoadRunner\Centrifugo\Payload;
use RoadRunner\Centrifugo\Request;
use RoadRunner\Centrifugo\Request\RequestFactory;
use Spiral\RoadRunner\Worker;
$worker = Worker::create();
$requestFactory = new RequestFactory($worker);
// Create a new Centrifugo Worker from global environment
$centrifugoWorker = new CentrifugoWorker($worker, $requestFactory);
while ($request = $centrifugoWorker->waitRequest()) {
if ($request instanceof Request\Invalid) {
$errorMessage = $request->getException()->getMessage();
if ($request->getException() instanceof \RoadRunner\Centrifugo\Exception\InvalidRequestTypeException) {
$payload = $request->getException()->payload;
}
// Handle invalid request
// $logger->error($errorMessage, $payload ?? []);
continue;
}
}
Full Changelog: https://github.com/roadrunner-php/centrifugo/compare/1.0.0...2.0.0
Init project
Full Changelog: https://github.com/roadrunner-php/centrifugo/commits/1.0.0
How can I help you explore Laravel packages today?