fresh / centrifugo-bundle
Provides communication with web-socket server Centrifugo in Symfony applications.
Fund package maintenance!
fre5h
Installs: 96 837
Dependents: 0
Suggesters: 0
Security: 0
Stars: 74
Watchers: 4
Forks: 8
Open Issues: 0
Type:symfony-bundle
Requires
- php: >=8.2
- fresh/datetime: ^3.0
- symfony/config: ~7.0
- symfony/console: ~7.0
- symfony/dependency-injection: ~7.0
- symfony/framework-bundle: ~7.0
- symfony/http-client: ~7.0
- symfony/http-foundation: ~7.0
- symfony/http-kernel: ~7.0
- symfony/security-core: ~7.0
- symfony/validator: ~7.0
Requires (Dev)
README
📦 Provides communication with web-socket server Centrifugo in Symfony applications.
Features 🎁
- Compatible with latest Centrifugo 5.2.2 🚀
- 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.2
- Symfony 7.0
Installation 🌱
$ composer req fresh/centrifugo-bundle
Choose the version you need
Bundle Version (X.Y.Z) | PHP | Symfony | Comment |
---|---|---|---|
5.0.* |
>= 8.2 |
7.* |
Current version |
4.1.* |
>= 8.2 |
6.* |
Previous version |
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 ###
CENTRIFUGO_API_KEY
should be the same value as option api_key
in your Centrifugo config file.
CENTRIFUGO_SECRET
should be the same value as option token_hmac_secret_key
in your Centrifugo config file.
ℹ️ Customize bundle configuration
Using 🧑🎓
Centrifugo service
<?php declare(strict_types=1); namespace App\Service; use Fresh\CentrifugoBundle\Service\CentrifugoInterface; class YourService { public function __construct(private readonly CentrifugoInterface $centrifugo) { } public function example(): void { $this->centrifugo->publish(['foo' => 'bar'], 'channelName'); } }
ℹ️ More examples of using Centrifugo service
Authentication with JWT tokens 🗝️
Console commands ⚒️
centrifugo:publish
centrifugo:broadcast
centrifugo:subscribe
centrifugo:unsubscribe
centrifugo:disconnect
centrifugo:refresh
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 🎛️
Autocomplete channels in console commands 🪄
Contributing 🤝
Read the CONTRIBUTING file.