stomp-php / stomp-bundle
Integrates stomp-php support for symfony applications.
Installs: 447
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 3
Open Issues: 3
Type:symfony-bundle
Requires
- php: ^7.1
- stomp-php/stomp-php: ^4.4
- symfony/config: ^3.4|^4.0
- symfony/console: ^3.4|^4.0
- symfony/dependency-injection: ^3.4|^4.0
- symfony/http-kernel: ^3.4|^4.0
- symfony/yaml: ^3.4|^4.0
Requires (Dev)
- phpunit/phpunit: ^6|^7
- symfony/debug: ^3.4|^4.0
This package is auto-updated.
Last update: 2024-09-24 01:20:07 UTC
README
This bundle provides stomp-php integration for symfony (3.4, 4.0).
Quick Setup
composer require stomp-php/stomp-bundle
- For Symfony 3.4 you need to register the bundle by adding
new StompPhp\StompBundle\StompPhpStompBundle()
to yourAppKernel.php
. - For Symfony 4.0 you need to register the command by adding
StompPhp\StompBundle\Command\ConsumerCommand:
to yourservices.yaml
.
Create a service that is callable
.
class YourService { // is called for every message that is received from the queue public function __invoke(Stomp\Transport\Frame $message) { if ($mesage->body === '...') { return true; } return false; } }
Define stomp clients and consumers (subscriptions).
stomp_php_stomp: clients: default: broker_uri: 'tcp://localhost:61614' # default read timeout is one minute, which makes interactive stop requests very slow. read_timeout_ms: 750 consumers: welcome: client: 'default' queue: '/welcome' service: AppBundle\YourService
Start to consume messages.
bin/console stomp:consumer welcome
Configuration Options
Please not that client instances are not shared and they are private by default.
Consumers are always public as they are part of the dynamic console command that this bundle offers.
stomp_php_stomp: clients: default: # use a broker_uri as connection string # failover://(tcp://localhost:61614,ssl://localhost:61612)?randomize=true # failover://(tcp://localhost:61614,ssl://localhost:61612) broker_uri: 'tcp://localhost:61614' # expose this client as service (stomp.clients.default) public: true example_broker: host: '127.0.0.1' port: 61612 vhost: '/someVhost' # define heartbeats, please be aware that your processing # needs to be faster than the heartbeat that you defined here. heartbeat_client_ms: 250 heartbeat_server_ms: 250 read_timeout_ms: 750 write_timeout: 3 simple_broker: broker_uri: 'failover://(tcp://localhost:61614,ssl://localhost:61612)?randomize=true' # define username and password user: 'username' password: 'password' consumers: welcome: # set the client to use client: 'default' # define what queue to subscribe to queue: '/welcome' # set the service (callable) service: AppBundle\Service\WelcomeService welcome_with_method: client: 'example_broker' queue: '/push/message' service: AppBundle\Service\MessageService # set the service method (if service itself is not a callable) service_method: 'onPushMessage' # define a message selector selector: "switch = 'green'"