RPC采用客户机/服务器 模式 。 请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端, 进程保持睡眠状态直到调用信息的到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后, 客户端 调用进程接收答复信息,获得进程结果,然后调用执行继续进行。
php中RPC简单框架感觉是YAR,尝试自己写一个案例,提前需要安装yar框架,具体安装方法上网搜搜:
服务器端:地址:http://html.com/yar/Operator.php 代码:
class Operator { /** * Add two operands * @param interge * @return interge */ public function add($a, $b) { return $this->_add($a, $b); } /** * Sub */ public function sub($a, $b) { return $a - $b; } /** * Mul */ public function mul($a, $b) { return $a * $b; } /** * Protected methods will not be exposed * @param interge * @return interge */ protected function _add($a, $b) { return $a + $b; } } $server = new Yar_Server(new Operator()); $server->handle();
客户的地址:http://html.com/yar/yar.php
代码:
$url="http://html.com/yar/Operator.php"; $client = new yar_client($url); var_dump($client->add(1, 2)); var_dump($client->call("add", array(3, 2)));
打印结果为:
int(3) int(5)