moee / bushtaxi
ZeroMQ connection manager for PHP (alpha)
0.0.1-alpha
2016-11-24 12:12 UTC
Requires
- php: >=7.0
- ext-zmq: *
Requires (Dev)
- bramus/monolog-colored-line-formatter: ~2.0
- monolog/monolog: ^1.21
- phpunit/phpunit: 5.6.*
- pimple/pimple: ^3.0
Suggests
- monolog/monolog: ^1.21
This package is not auto-updated.
Last update: 2025-02-10 14:50:41 UTC
README
Bushtaxi aims at making your life with ZeroMQ easier. It establishes connections and bindings based on simple configurations.
Usage
Client
A basic configuration for a req socket looks like this:
$config = [
"service" => [ "name" => "client" ],
"links" => [
"server" => [
"type" => "req",
"connect" => "tcp://10.0.0.100:5000"
]
]
];
With this config you now can easily send a message to the socket specified in the config.
$bushtaxi = new Bushtaxi\Client($config);
$bushtaxi->server->send('Hello World');
Server
Binding sockets and running servers is as easy. First create a config.
$config = [
"service" => [ "name" => "server" ],
"links" => [
"client" => [
"type" => "rep",
"bind" => "tcp://10.0.0.100:5000
]
]
];
In addition to the config you also need to specify a server runtime class. This runtime class determines what happens in every loop.
$runtime = new class extends Bushtaxi\AbstractServerRuntime {
function handle($links) {
$message = $links['client']->recv();
$links['client']->send("World");
}
};
And we are good to go:
$bushtaxi = new Bushtaxi\Server($config, $runtime);
$bushtaxi->run();
You can find this example in the examples directory.
Run tests
cd bushtaxi
for f in $(find tests/*.yml); do docker-compose -f $f up; done