Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

220 Commits

Repository files navigation

STOMP protocol implementation

Build status on GitHubXP Framework ModuleBSD LicenceRequires PHP 7.0+Supports PHP 8.0+Latest Stable Version

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

usepeer\stomp\{Connection, SendableMessage};
$conn= newConnection('stomp://localhost:61613/');
$conn->connect();
$conn->getDestination('/queue/producer')->send(
newSendableMessage('Message contents', 'text/plain')
);

Consumer

A simple message consumer (subscriber):

usepeer\stomp\{Connection, Subscription};
$conn= newConnection('stomp://localhost:61613/');
$conn->connect();
$conn->subscribeTo(newSubscription('/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:

usepeer\stomp\{Connection, Subscription, Failover};
$nodes= ['stomp://one.example.com:61613/', 'stomp://two.example.com:61613/'];
// Connect randomly to one or the other$conn= newConnection(Failover::using($nodes)->byRandom());
$conn->connect();
$conn->subscribeTo(newSubscription('/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 be stomp or stomp+ssl
  • host is the hostname to connect
  • port 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

About

STOMP client classes for XP Framework: Publish and subscribe

Topics

Resources

Stars

2 stars

Watchers

5 watching

Forks

Releases

Packages

Used by

Contributors

Languages