xp-forge / stomp
STOMP protocol implementation
Installs: 47 058
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 7
Forks: 3
Open Issues: 0
Requires
- php: >=7.0.0
- xp-framework/core: ^12.0 | ^11.0 | ^10.0
- xp-framework/logging: ^11.0 | ^10.0 | ^9.1
- xp-framework/networking: ^10.0 | ^9.3
Requires (Dev)
- xp-framework/test: ^2.0 | ^1.0
README
About
STOMP is a network protocol to talk to message brokers such as Apache ActiveMQ or RabbitMQ.
The STOMP specification can be found at http://stomp.github.io/.
Examples
Producer
A message producer
use peer\stomp\{Connection, SendableMessage}; $conn= new Connection('stomp://localhost:61613/'); $conn->connect(); $conn->getDestination('/queue/producer')->send( new SendableMessage('Message contents', 'text/plain') );
Consumer
A simple message consumer (subscriber):
use peer\stomp\{Connection, Subscription}; $conn= new Connection('stomp://localhost:61613/'); $conn->connect(); $conn->subscribeTo(new Subscription('/queue/producer', function($message) { Console::writeLine('---> Received message: ', $message); $message->ack(); })); $conn->consume();
Multi-endpoint failover
A consumer with a broker network may connect to any host when available:
use peer\stomp\{Connection, Subscription, Failover}; $nodes= ['stomp://one.example.com:61613/', 'stomp://two.example.com:61613/']; // Connect randomly to one or the other $conn= new Connection(Failover::using($nodes)->byRandom()); $conn->connect(); $conn->subscribeTo(new Subscription('/queue/producer', function($message) { Console::writeLine('---> Received message: ', $message); $message->ack(); })); $conn->consume();
For more examples, please see the examples/
directory.
The connection URL
The URL specifies the options how and where to connect:
protocol
should bestomp
orstomp+ssl
host
is the hostname to connectport
is the port to connect (default: 61613)user
,pass
can be given in the URL and will be used for authentication- Supported parameters:
vhost
- virtual host name, since STOMP 1.1 (eg.?vhost=example.com
)versions
- to specify list of supported versions (eg.?versions=1.0,1.1
); default is to support 1.0, 1.1