CentrifugoBundle
CentrifugoBundle copied to clipboard
đĻ Provides communication with web-socket server Centrifugo in Symfony applications.
CentrifugoBundle
đĻ Provides communication with web-socket server Centrifugo in Symfony applications.
Features đ
- [x] Compatible with latest Centrifugo 2.8.6 đ
- [x] Wrapper over Centrifugo HTTP API đ
- [X] Authentication with JWT token (HMAC algorithm) for anonymous, authenticated user and private channel đī¸
- [x] Batch request in JSON streaming format đĒ
- [x] Console commands âī¸ī¸
- [x] Integration into Symfony Web-Profiler đī¸
Requirements đ§
- PHP 8.1
- Symfony 6.1
Installation đą
$ composer req fresh/centrifugo-bundle
By 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 ###
âšī¸ Customize bundle configuration
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');
}
}
âšī¸ More examples of using Centrifugo service
Authentication with JWT tokens đī¸
- For anonymous
- For authenticated User
- For private channel
Console commands âī¸
-
centrifugo:publish
-
centrifugo:broadcast
-
centrifugo:unsubscribe
-
centrifugo:disconnect
-
centrifugo:presence
-
centrifugo:presence-stats
-
centrifugo:history
-
centrifugo:history-remove
-
centrifugo:channels
-
centrifugo:info
âšī¸ More examples of using console commands
Integration into Symfony Web-Profiler đī¸
Contributing đ¤
Read the CONTRIBUTING file.