Ejemplo n.º 1
0
<?php

require_once "../vendor/autoload.php";
use Hprose\Swoole\Client;
use Hprose\InvokeSettings;
$test = new Client("http://127.0.0.1:1315");
//$test->fullDuplex = true;
$test->timeout = 600;
$test->sum(1, 2)->catchError(function ($e) {
    //echo $e;
});
$test->sum(1, 2)->then(function ($result) {
    echo "1 + 2 = " . $result;
})->catchError(function ($e) use($test) {
    //echo $e;
    $test->sum(2, 3, new InvokeSettings(array('timeout' => 20000)))->then(function ($result) {
        echo "2 + 3 = " . $result;
    })->catchError(function ($e) {
        echo $e;
    });
});
Ejemplo n.º 2
0
<?php

require_once "../vendor/autoload.php";
use Hprose\Future;
use Hprose\Swoole\Client;
$test = new Client("unix:/tmp/my.sock");
$var_dump = Future\wrap("var_dump");
Future\co(function () use($test) {
    try {
        var_dump((yield $test->hello("yield world1")));
        var_dump((yield $test->hello("yield world2")));
        var_dump((yield $test->hello("yield world3")));
        var_dump((yield $test->hello("yield world4")));
        var_dump((yield $test->hello("yield world5")));
        var_dump((yield $test->hello("yield world6")));
    } catch (\Exception $e) {
        echo $e;
    }
});
$var_dump($test->hello("async world1"));
$var_dump($test->hello("async world2"));
$var_dump($test->hello("async world3"));
$var_dump($test->hello("async world4"));
$var_dump($test->hello("async world5"));
$var_dump($test->hello("async world6"));
$test->hello("world1")->then(function ($result) use($test) {
    var_dump($result);
    return $test->hello("world2");
})->then(function ($result) use($test) {
    var_dump($result);
    return $test->hello("world3");
Ejemplo n.º 3
0
<?php

require_once "../vendor/autoload.php";
use Hprose\Future;
use Hprose\Swoole\Client;
Future\co(function () {
    $test = new Client("tcp://127.0.0.1:1314");
    $test->fullDuplex = true;
    $start = microtime(true);
    $n = 100;
    $m = 100;
    for ($j = 0; $j < $n; $j++) {
        $results = array();
        for ($i = 0; $i < $m; $i++) {
            $results[] = $test->hello("{$j}-{$i}");
        }
        (yield Future\all($results));
    }
    $total = microtime(true) - $start;
    $average = $total / $n / $m;
    var_dump($total);
    var_dump($average);
});
Ejemplo n.º 4
0
<?php

require_once "../vendor/autoload.php";
use Hprose\Swoole\Client;
use Hprose\Future;
Future\co(function () {
    $client = new Client("tcp://127.0.0.1:1980");
    $id = (yield $client->getId());
    $client->subscribe('news', $id, function ($news) {
        var_dump($news);
    });
    var_dump((yield $client->hello('hprose')));
});
 /**
  * 支持按模块加载用户自定义函数
  * @param $name
  * @param $args
  * @return mixed
  */
 public function __call($name, $args)
 {
     if (strpos($name, 'async') !== false) {
         $name = $this->module . '_async_' . str_replace('async', '', $name);
     } else {
         $name = $this->module . '_' . $name;
     }
     return parent::__call($name, $args);
 }
Ejemplo n.º 6
0
<?php

require_once "../vendor/autoload.php";
use Hprose\Swoole\Client;
$client = new Client("tcp://127.0.0.1:2016");
$count = 0;
$client->subscribe('time', function ($date) use($client, &$count) {
    if (++$count > 10) {
        $client->unsubscribe('time');
        swoole_event_exit();
    } else {
        var_dump($date);
    }
});