建立composer.json
{ "name": "hprose/examples", "description": "examples of hprose", "authors": [ { "name": "andot", "email": "mabingyao@gmail.com" } ], "require": { "php": ">=5.3.0", "hprose/hprose": "dev-master" } }
执行
composer install
<?php require_once "./vendor/autoload.php"; use Hprose\Socket\Server; function hello($name) { return "Hello $name!"; } $server = new Server("tcp://0.0.0.0:1314"); $server->setErrorTypes(E_ALL); $server->setDebugEnabled(); $server->addFunction('hello'); $server->start();
建立client.php
<?php require_once "./vendor/autoload.php"; use \Hprose\Future; use \Hprose\Socket\Client; $test = new Client("tcp://127.0.0.1:1314"); $test->fullDuplex = true; 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); } });
执行
php server.php php client.php
string(19) "Hello yield world1!" string(19) "Hello yield world2!" string(19) "Hello yield world3!" string(19) "Hello yield world4!" string(19) "Hello yield world5!" string(19) "Hello yield world6!"