symfony / mercure
Symfony Mercure Component
Installs: 12 712 446
Dependents: 26
Suggesters: 2
Security: 0
Stars: 428
Watchers: 5
Forks: 45
Open Issues: 15
pkg:composer/symfony/mercure
Requires
- php: >=7.1.3
- symfony/deprecation-contracts: ^2.0|^3.0|^4.0
- symfony/http-client: ^4.4|^5.0|^6.0|^7.0
- symfony/http-foundation: ^4.4|^5.0|^6.0|^7.0
- symfony/polyfill-php80: ^1.22
- symfony/web-link: ^4.4|^5.0|^6.0|^7.0
Requires (Dev)
- lcobucci/jwt: ^3.4|^4.0|^5.0
- symfony/event-dispatcher: ^4.4|^5.0|^6.0|^7.0
- symfony/http-kernel: ^4.4|^5.0|^6.0|^7.0
- symfony/phpunit-bridge: ^5.2|^6.0|^7.0
- symfony/stopwatch: ^4.4|^5.0|^6.0|^7.0
- twig/twig: ^2.0|^3.0|^4.0
Suggests
- symfony/stopwatch: Integration with the profiler performances
README
Mercure is a protocol allowing to push data updates to web browsers and other HTTP clients in a convenient, fast, reliable and battery-efficient way. It is especially useful to publish real-time updates of resources served through web APIs, to reactive web and mobile apps.
The Mercure Component implements the "publisher" part of the Mercure Protocol.
Getting Started
$ composer require symfony/mercure lcobucci/jwt
// change these values accordingly to your hub installation const HUB_URL = 'https://demo.mercure.rocks/.well-known/mercure'; const JWT_SECRET = '!ChangeThisMercureHubJWTSecretKey!'; // Set up the JWT token provider // Alternatively, you can use the \Symfony\Component\Mercure\Jwt\StaticTokenProvider if you already have a JWT token $jwFactory = new \Symfony\Component\Mercure\Jwt\LcobucciFactory(JWT_SECRET); $provider = new \Symfony\Component\Mercure\Jwt\FactoryTokenProvider($jwFactory, publish: ['*']); $hub = new \Symfony\Component\Mercure\Hub(HUB_URL, $provider); // Serialize the update, and dispatch it to the hub, that will broadcast it to the clients $id = $hub->publish(new \Symfony\Component\Mercure\Update('https://example.com/books/1.jsonld', 'Hi from Symfony!'));