CentrifugoBundle
đĻ Provides communication with web-socket server Centrifugo in Symfony applications.
Features đ
- [x] Compatible with latest Centrifugo 2.5 đ
- [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 7.3 and later
- Symfony 4.4, 5.0 and later
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://centrifugo: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\Centrifugo;
class YourService
{
private $centrifugo;
public function __construct(Centrifugo $centrifugo)
{
$this->centrifugo = $centrifugo;
}
public function example(): void
{
$this->centrifugo->publish(['foo' => 'bar'], 'channelA');
}
}
âšī¸ More examples of using Centrifugo service
Authentication with JWT tokens đī¸
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.
The MIT License (MIT)
Copyright (c) 2020 Artem Henvald
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Copyright (c) 2020 Artem Henvald
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
Update CommandInterface.php
By web-flow, 9 months ago
-
Update ResultableCommandInterface.php
By web-flow, 9 months ago
-
Update SerializableCommandInterface.php
By web-flow, 9 months ago
-
Update centrifugo_service_methods.md
By web-flow, 9 months ago
-
Update README.md
By web-flow, 9 months ago
-
Update README.md
By web-flow, 9 months ago
-
Update configuration.md
By web-flow, 9 months ago
-
Update README.md
By web-flow, 9 months ago
-
Clean code (#4)
By web-flow, 9 months ago
-
Add data collector for Symfony profiler (#3)
By web-flow, 9 months ago
-
Update README.md
By web-flow, 9 months ago
-
Fix http-foundation version
By web-flow, 9 months ago
-
JWT token authentication
By web-flow, 9 months ago
-
Improvements and tests
By web-flow, 9 months ago
-
Fix CS
By fre5h, 9 months ago
-
Refactoring
By fre5h, 9 months ago
-
Add base files
By fre5h, 9 months ago
-
Init
By fre5h, 2 years ago