<?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; }); });
<?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");
<?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); });
<?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); }
<?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); } });