浏览模式: 标准 | 列表
前面我们定义了 PHPRPC 2.0 协议。并给出用 PHP 实现的该协议的服务器端。本文中我们将给出 PHP 实现的该协议的客户端。它兼容 PHPRPC 0.2—1.1 服务器,即使采用的是 PHPRPC 2.0 的调用方式,但此时的远程过程调用将不采用加密传输。 2006年3月17日 更新 增加了 warning 属性。 实例演示(实例代码见实现代码注释部分):http://test.coolcode.cn/phprpc/client.php

» 阅读全文

本文给出了 PHPRPC 2.1 协议的服务器端实现,它的使用方法与前面的版本相同。但在支持 2.1 协议的客户端调用时,可以有效的减少网络数据的传输。 2006年3月17日 更新 服务器端增加了 debug 功能,只需要创建服务器时第二个参数(debug)设为 true 即可,这样在出错时可以返回更多错误信息。 更新了错误处理方式,警告错误不再中断程序执行。

» 阅读全文

前面我们定义了 PHPRPC 1.1 协议,通过它可以实现 PHP 到 PHP JavaScript 到 PHP 之间的远程过程调用。但在有些情况下,我们希望远程过程调用能够安全的传输数据,当然这可以通过 SSL 来实现,但要部署 SSL 需要有服务器管理权限,如果我们不能对服务器做些什么,那就只能在自己的程序里去编写加密传输的代码。而这显然会增加程序的复杂性和开发难度。为了能够在远程过程调用中安全的传输数据,但又不增加开发难度,我们定义了 PHPRPC 2.0 协议。它当中集成了安全加密传输机制。本文中我们将给出用 PHP 实现的该协议的服务器端。 2006年3月17日 更新 服务器端增加了 debug 功能,只需要创建服务器时第二个参数(debug)设为 true 即可,这样在出错时可以返回更多错误信息。 更新了错误处理方式,警告错误不再中断程序执行。

» 阅读全文

有时候我们需要在两个 php 服务器之间执行远程过程调用,虽然用 xml-rpc 是一种解决方案,但是目前的 xml-rpc 的 php 实现用起来都非常麻烦,原来我也写过一个能够方便使用的 php 的 xml-rpc 类库,但是那个需要安装 xmlrpc-epi 扩展,这对于不支持这个扩展的服务器就不方便了。所以我写了下面这个 PHPRPC 的类库,它没有使用 xml-rpc 协议,而是我自己定义的 PHPRPC 协议,这个虽然只能用于 php 程序之间的远程过程调用,但是使用起来比 xml-rpc 更方便。 其他语言也不是完全不可能实现,只是实现起来比用 php 麻烦点而已,因为这里对参数和返回值的序列化与反序列化直接使用的 php 的 serialize 和 unserialize,其他语言只要能够实现这两个函数,要实现这个协议也很简单。 2006年3月17日 更新 服务器端增加了 debug 功能,只需要创建服务器时第二个参数(debug)设为 true 即可,这样在出错时可以返回更多错误信息。 更新了服务器端错误处理方式,警告错误不再中断程序执行。 给客户端增加了 warning 属性。 更多的更新历史见正文

» 阅读全文

这个版本主要是将原来 128bits 的密钥交换改为了 512bits 的密钥交换,这个版本以前的版本(2.0、2.1)的加密传输是不兼容的,因为 512bits 密钥交换需要比较大的计算量,因此这个版本没有 javascript 的客户端实现,这也是以前没有考虑使用 512bits 密钥交换的原因。这个版本最好在安装了 big_int 扩展的服务器上部署,因为如果没有 big_int 扩展,则客户端和服务器端初始会话需要 3 秒钟,而有 big_int 扩展则只需要 0.1 秒。

download:

the implementation of PHPRPC 2.1s

» 阅读全文