roadrunner-php/centrifugo
RoadRunner: Centrifugo bridge
2.3.0
2.2M downloads/mo
#1653 most downloaded on Packagist
roadrunner-php/centrifugo
What this package is like to depend on
Last release 26 days ago
28 Jul 2026
Ships fairly regularly
a new release about every 8 months
Nearly every release is documented
notes for 7 of 7 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
7 releases · first in 2022
1 release in the last 12 months
see the full history below
Release timeline
7 releases · Nov 2022 to Jul 2026Releases
latest 7-
2.3.028 Jul 2026 -
2.2.123 Jun 2025 -
v2.2.022 Jul 2024 -
v2.1.011 Apr 2024 -
v2.0.106 Mar 2024Release notes
Open source →Bug fixes
- In the
RoadRunner\Centrifugo\Payload\Disconnectclass, the reconnect parameter is declared as deprecated and is no longer used.
Full Changelog: 2.0.0...v2.0.1
- In the
-
2.0.013 Apr 2023Release notes
Open source →Features
- Upgraded to PHP 8.1
- Upgraded to PHPUnit 10
- Upgraded to Psalm 5
- Added reusable Gh Actions
- Added metapackage spiral/roadrunner:^2023
Breaking Changes
Generated proto DTO files
Local proto DTO files were replaced with files from
roadrunner-php/roadrunner-api-dtopackageRoadRunner\Centrifugo\Service\DTO\... => RoadRunner\KV\DTO\V1\... RoadRunner\Centrifugo\DTO\... => RoadRunner\Centrifugal\Proxy\DTO\V1\...Added sub refresh proxy request
<?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 documentationby @butschster in #8
Added invalid request type
<?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: 1.0.0...2.0.0
-
1.0.011 Nov 2022Release notes
Open source →Init project
Full Changelog: https://github.com/roadrunner-php/centrifugo/commits/1.0.0