Пример #1
0
<?php

use Rxnet\Event\Event;
require __DIR__ . "/../../vendor/autoload.php";
$loop = new \Rxnet\Loop\LibEvLoop();
$serializer = new \Rxnet\Serializer\MsgPack();
$zmq = new \Rxnet\Zmq\RxZmq($loop, $serializer);
$rep = $zmq->rep('ipc://test.sock');
$i = 0;
$event = new Event('ping');
$rep->flatMap(new \Rxnet\Zmq\Plugins\Acknowledge($rep))->subscribeCallback(function () use(&$i) {
    $i++;
    echo "Got {$i} messages\n";
}, function ($e) {
    echo "Got an error {$e->getMessage()}\n";
});
$loop->run();
Пример #2
0
<?php

use Rxnet\Event\Event;
use Rxnet\Zmq\Plugins\WaitForAnswer;
require __DIR__ . "/../../vendor/autoload.php";
$loop = new \Rxnet\Loop\LibEvLoop();
$serializer = new \Rxnet\Serializer\MsgPack();
$scheduler = new \Rx\Scheduler\EventLoopScheduler($loop);
$zmq = new \Rxnet\Zmq\RxZmq($loop, $serializer);
$event = new Event('ping');
for ($i = 0; $i < 200; $i++) {
    $req = $zmq->req('ipc://test.sock');
    $req->send($event)->flatMap(new WaitForAnswer($req))->subscribeCallback(function () {
        echo "Got an answer\n";
    }, function ($e) {
        echo "Got an error {$e->getMessage()}\n";
    });
}
$loop->run();