说明:
PHPRPC 有很多种特性 轻量级,安全,跨国际,跨语言 跨平台跨环境
它支持php java js .net Delphi asp python等各种语言,而且在官方网站上面有各种语言的帮助手册 网址是:www.phprpc.org/zh_CN/下面简单的事例说明
去网站上面下载PHPPRC FOR PHP版本的,下载完成之后我们在web目录下面新建一个phprpc_client和phprpc_server这2个文件夹,其中phprpc_client和phprpc_server文件夹里面的文件如下:
其中官方上面是这样说明的:
下面我们就进行测试,首先在phprpc_server进行创建一个server.php文件
include ("php/phprpc_server.php");
function HelloWorld() {
return 'Hello World!';
}
$server = new PHPRPC_Server();
$server->add('HelloWorld');
$server->start();
其中我们新建了一个HelloWorld方法,这个是server端的,那么我们如何在client端进行调用呢?
下面我们在phprpc_client下面新建一个client.php文件
include ("php/phprpc_client.php");
$client = new PHPRPC_Client('http://127.0.0.1/phprpc_server/server.php');
echo $client->HelloWorld();
然后直接访问http://localhost/phprpc_client/client.php
会看到显示Hello World!Ok测试成功!
如果按照这样的思路,我们进行写接口的时候可以很方便。。
其实查看一个client.php里面进行跟踪下代码找到了php/phprpc_client.php里面我们会发现,找到
代码大概是315行 看到这一句代码
function _connect() {
if (is_null($this->_proxy)) {
$host = (($this->_server['scheme'] == "https") ? "ssl://" : "") . $this->_server['host'];
$this->_socket = @pfsockopen($host, $this->_server['port'], $errno, $errstr, $this->_timeout);
}
else {
$host = (($this->_server['scheme'] == "https") ? "ssl://" : "") . $this->_proxy['host'];
$this->_socket = @pfsockopen($host, $this->_proxy['port'], $errno, $errstr, $this->_timeout);
}
if ($this->_socket === false) {
return new PHPRPC_Error($errno, $errstr);
}
stream_set_write_buffer($this->_socket, 0);
socket_set_timeout($this->_socket, $this->_timeout);
return true;
}
可以看_connect() 这个方法其实还是用的socket ,所以呢,我们在用phprpc的时候需要保证php 安装了socket扩展,另外也需要进行开启session的支持,
要查看php 是否安装了socket扩展的话,我们可以用phpinfo() 进行查看!