CentrifugoBundle
Features 🎁
- Compatible with latest Centrifugo 2.8.6
🚀 - Wrapper over Centrifugo HTTP API
🔌 - Authentication with JWT token (HMAC algorithm) for anonymous, authenticated user and private channel
🗝️ - Batch request in JSON streaming format
💪 - Console commands
⚒️ ️ - Integration into Symfony Web-Profiler
🎛️
Requirements 🧐
- PHP 8.1
- Symfony 6.1
Installation 🌱
$ composer req fresh/centrifugo-bundleBy default, Symfony Flex adds this bundle to the config/bundles.php file and adds required environment variables into .env file.
In case when you ignored contrib-recipe during bundle installation it would not be done. Then you have to do this manually.
Check the config/bundles.php file
# config/bundles.php
return [
// Other bundles...
Fresh\CentrifugoBundle\FreshCentrifugoBundle::class => ['all' => true],
// Other bundles...
];Check the .env file and add you configuration
# .env
###> fresh/centrifugo-bundle ###
CENTRIFUGO_API_KEY=secret-api-key
CENTRIFUGO_API_ENDPOINT=http://localhost:8000/api
CENTRIFUGO_SECRET=secret
###< fresh/centrifugo-bundle ###Using 🧑🎓
Centrifugo service
<?php
declare(strict_types=1);
namespace App\Service;
use Fresh\CentrifugoBundle\Service\CentrifugoInterface;
class YourService
{
private CentrifugoInterface $centrifugo;
public function __construct(CentrifugoInterface $centrifugo)
{
$this->centrifugo = $centrifugo;
}
public function example(): void
{
$this->centrifugo->publish(['foo' => 'bar'], 'channelA');
}
}Authentication with JWT tokens 🗝️
Console commands ⚒️
centrifugo:publishcentrifugo:broadcastcentrifugo:unsubscribecentrifugo:disconnectcentrifugo:presencecentrifugo:presence-statscentrifugo:historycentrifugo:history-removecentrifugo:channelscentrifugo:info
Integration into Symfony Web-Profiler 🎛️
Contributing 🤝
Read the CONTRIBUTING file.

