php-JsonRPC Json-RPC 的 PHP 扩展 项目简介
JsonRPC 2.0 Client and Server=============================轻量级 Json-RPC 2.0 客户端和服务端的php扩展,基于 multi_curl + epoll的并发客户端,依据[jsonrpc](http://www.jsonrpc.org/)协议规范。服务端:$server = new Jsonrpc_Server();
// style one function variable
$add1 = function($a, $b){
return $a + $b;
};
$server->register('addition1', $add1);
// style two function string
function add2($a, $b){
return $a + $b;
}
$server->register('addition2', 'add2');
// style three function closure
$server->register('addition3', function ($a, $b) {
return $a + $b;
});
//style four class method string
class A
{
static public function add($a, $b)
{
return $a + $b;
}
}
$server->register('addition4', 'A::add');
echo $server->execute();
//output >>>
//{"jsonrpc":"2.0","id":null,"error":{"code":-32700,"message":"Parse error"}}客户端:$client = new Jsonrpc_Client(1);
$client->call('http://localhost/server.php', 'addition1', array(3,5));
$client->call('http://localhost/server.php', 'addition2', array(10,20));
$client->call('http://localhost/server.php', 'addition3', array(2,8));
$client->call('http://localhost/server.php', 'addition4', array(6,15));
/* ... */
$result = $client->execute();
var_dump($result);
//output >>>
/*
array(2) {
[0]=>
array(3) {
["jsonrpc"]=>
string(3) "2.0"
["id"]=>
int(110507766)
["result"]=>
int(8)
}
[1]=>
array(3) {
["jsonrpc"]=>
string(3) "2.0"
["id"]=>
int(1559316299)
["result"]=>
int(30)
}
...
}
*/
// style one function variable
$add1 = function($a, $b){
return $a + $b;
};
$server->register('addition1', $add1);
// style two function string
function add2($a, $b){
return $a + $b;
}
$server->register('addition2', 'add2');
// style three function closure
$server->register('addition3', function ($a, $b) {
return $a + $b;
});
//style four class method string
class A
{
static public function add($a, $b)
{
return $a + $b;
}
}
$server->register('addition4', 'A::add');
echo $server->execute();
//output >>>
//{"jsonrpc":"2.0","id":null,"error":{"code":-32700,"message":"Parse error"}}客户端:$client = new Jsonrpc_Client(1);
$client->call('http://localhost/server.php', 'addition1', array(3,5));
$client->call('http://localhost/server.php', 'addition2', array(10,20));
$client->call('http://localhost/server.php', 'addition3', array(2,8));
$client->call('http://localhost/server.php', 'addition4', array(6,15));
/* ... */
$result = $client->execute();
var_dump($result);
//output >>>
/*
array(2) {
[0]=>
array(3) {
["jsonrpc"]=>
string(3) "2.0"
["id"]=>
int(110507766)
["result"]=>
int(8)
}
[1]=>
array(3) {
["jsonrpc"]=>
string(3) "2.0"
["id"]=>
int(1559316299)
["result"]=>
int(30)
}
...
}
*/