浏览模式: 标准 | 列表

经过了近半年的测试版本阶段,今天 PHPRPC 3.0 for Java 终于发布正式版了。

PHPRPC 3.0 for Java 正式版中,修正了测试版中存在的几个小问题。并且增加了简繁中文文档,文档包括 PHPRPC for Java 3.0 API 手册和 PHPRPC for Java 3.0 用户指南。文档的繁体中文版本由 iGoogle 小工具达人——胡智宝先生翻译,感谢胡智宝先生的大力支持!同时感谢 PHPRPC 技术交流群中的所有热心的朋友!

下载地址请访问 PHPRPC 官方网站:http://www.phprpc.org

2007年12月2日更新:

当服务器端启用持久连接,并且提前断开连接后,原 PHPRPC for Java 客户端没有重新提交 POST 请求,导致这时的调用返回无效的 HTTP 服务器错误。本次更新已经修正了该问题。

当字符串是 false 时,原 Cast 类转换为 Boolean 类型时会返回 true。本次更新修正了该问题。

PHPRPC for Java 3.0 用户指南中增加了工具包介绍和大量的高级问题解答。

2007年12月6日更新:

java.io.Socket 的 setKeepAlive 在 Android 中会抛出异常,导致原来的客户端在 Android 上不能使用。本次更新已经修正了该问题。

2008年1月13日更新:

增加了 org.phprpc.util.AssocArray 类,高度优化了反序列化联合数组的效率,联合数组反序列化后为 AssocArray 类型的对象,但在调用和返回结果时会自动转换为声明的实际类型(例如数组、ArrayList 或 HashMap)。关于AssocArray类的更多内容,请参见最新的 PHPRPC for Java 用户指南。

2008年1月29日更新:

增加了对拥有构造函数参数为 Collection 的 Collection 子类和拥有构造函数参数为 Map 的 Map 子类与其它语言(例如JavaScript、PHP 等)数组的交互能力,例如 Java 服务器端现在可以使用 LinkedList、LinkedHashMap、HashSet 等类型的参数来跟 JavaScript 或 PHP 的数组类型进行交互。

2008年8月17日更新:

优化了数据反序列化算法。为 PHPRPC 服务器端增加了 addGlobal 方法,用于发布全程方法,进一步提高了服务器效率。

» 阅读全文

正式版:

修正了对于无 head 标签的网页无法跨域调用的问题。

Beta 10 Update:

增加了 getEncryptMode 方法。
纠正了几个 IE5 兼容处理的 bug。
并使用 JSA + LZ77 混合压缩方式,进一步减小了压缩版本的大小。
进一步优化了 base64 编码程序。
隐藏了 freeEval 函数。
修正了无法反序列化未声明类的对象的问题。
改善了对 Pocket IE 的支持。
将支持 IE 5 的和不支持 IE 5 的分开打包压缩。不支持 IE 5 的版本体积更小。
取消了对 VBScript 中的数组和日期的支持。
将 iecompat.js 改名为 compat.js。
增加了对 VBScript 中日期时间类型的支持。
不再需要给非 IE 浏览器提供 VBArray 对象。
序列化函数不再附加到对象上面。
将日期序列化和反序列化做了修改,使其跟 PHPRPC for PHP 中的 PHPRPC_Date 类兼容。
增加了对 PHP6 中字符串转义序列化的反序列化支持。
压缩版本使用了 JSA 1.0alpha 压缩,感谢金大为大大提供这么好的工具!
重构了几乎所有代码,实现了私有函数的封装,提高了执行效率。
优化了 Base64 编码实现。并且将它们改名为 btoa 和 atob,这两个是 Gecko DOM 中定义的名字。因此对于 Gecko 系列的浏览器(Firefox/Mozilla 等)直接使用内置的 Base64 编码方法,速度有了质的飞跃。
增加了对 Date 类型对象的序列化和反序列化,可以与最新版本的 PHPRPC for PHP、Java 等服务器直接交换该类型数据。
修改了方法编号的生成算法,速度更快,而且可以保证不会重复。
对公开方法增加了注释。
增加了加密传输过程中对 Cookie-less 会话支持。

Beta 9 Update:

对 IE 浏览器的特殊支持不再依赖条件编译,并将其单独放到 iecompat.js 文件中(压缩版本中已包含该文件,无需单独加载)。
暂时取消了对没有 Cookie 的会话支持,但同一个页面的不同的客户端对象仍然可以在共享会话的情况下正常加密通讯。
改用金大为提供的JSA对代码进行压缩。

Beta 8 Update:

修改了一些私有成员和私有方法的命名。
为 PHPRPC_Error 增加了 getMessage 和 getNumber 方法。
将 javascript 中的 Object 对象改为以 Array 方式序列化。

Beta 7 Update:

修正了 beta 6 中的一些小问题。
对部分代码进行了重构。
完善了错误处理。
完善了 url 中基本认证的用户名密码的处理。
增加了 setTimeout 和 getTimeout 方法,可以用来设置或获取方法执行的超时时间,单位为毫秒(1/1000 秒),超时以后将自动终止该调用。超时时间默认为 30 秒。如果要禁用超时,将参数设为 0 或 null 即可。
增加了 getReady 方法,与原来的 ready 属性作用相同。

Beta 6 Update:

当创建 PHPRPC_Client 对象时,可以通过设定第二个参数来设置远程方法列表,该参数为一个数组,数组的每一个元素为远程方法名。当设置该参数后,将不再从服务器上获取远程方法列表,可以减少一次跟服务器的通讯。同样,useService 也增加了第四个参数,该参数与创建 PHPRPC_Client 对象时的第二个参数功能相同。
修正了 beta 5 以及之前版本中,跨域加密传输的一个 bug。
对 IE 上创建 XMLHttpRequest 对象作了优化。
增加了不需要 Cookie 的会话支持,同一个页面的不同的客户端对象拥有各自独立的会话(该能力需要 PHPRPC 3.0 服务器的支持)。

Beta 5 Update:

增加了 abort 方法,当不带参数调用时,将结束所有的尚未完成的调用请求。
为 invoke 方法(或者直接通过远程方法名调用)增加了返回值,返回值为该方法的唯一标示,该标示可作为 abort 方法的参数,来结束掉指定的调用。

Beta 4 Update:

修正了大量连续发出请求时,引起 Firefox 产生 Exception… “Component returned failure code: 0×80040111 (NS_ERROR_NOT_AVAILABLE) [nsIXMLHttpRequest.status]” nsresult: “0×80040111 (NS_ERROR_NOT_AVAILABLE)”… 错误的问题。

Beta 3 Update:

当未指定 RPC 服务器而调用 useService 方法时,不再弹出错误,而是返回 PHPRPC_Error 对象。
当客户端无法使用 XMLHttpRequest 对象时,也不再弹出错误,而直接使用 js 方式。

Beta 2 Update:

修正了 Beta 1 中的多个 bug。
优化了部分代码。

Beta 1 Update:

实现了 PHPRPC 3.0 协议升级描述中的内容。
实现了 PHPRPC 3.0 for JavaScript Client API Draft 中的所有接口。
增加了对带 URL 参数的服务器地址的支持。
修正了同时发送多个请求时可能引起冲突的问题。
与 PHPRPC 2.1、2.0、1.1 的服务器端相兼容。

下载:http://www.phprpc.org/zh_CN/download/

» 阅读全文

下载地址请访问 PHPRPC 官方网站:http://www.phprpc.org

该版本支持 Flash 9 及其以上版本的 ActionScript 3.0,压缩包中有源文件和 mxp 组件包,组件包可以直接安装,安装后可以在 Flash 的组件面板中 Data 目录下找到(注意:要在发布设置里选择 Flash 9 和 ActionScript 3.0 才能看到),直接拖到你的库中就可以使用了。用法跟 ActionScript 2.0 版本的用法相同,但速度也比 ActionScript 2.0 版本快了很多,并且对传输对象支持的更好。

2007年12月6日更新:

增加了对 ByteArray 的高效序列化和反序列化,可以直接在 Flash 和服务器之间传输 2 进制数据了,如果服务器端是 Java,用 byte[] 接收数据,如果服务器端是 PHP,直接用字符串接收就可以了。同样,服务器端返回的数据,不管是 2 进制数据还是字符串,返回都是 ByteArray 类型,如果希望返回字符串,只需要执行返回值的 toString 方法就可以。

2007年12月8日更新:

上次更新增加的 ByteArray 序列化功能存在 bug,在序列化之前如果没有将 ByteArray 的指针位置置零,序列化后的数据将只有指针之后的数据,本次更新修正了这个 bug。

2007年12月25日更新:

修正了不能正确反序列化空 ByteArray 的 bug。

2008年1月14日更新:

重新编写了序列化类,优化了序列化和反序列化的效率,修正了一些原来的 bug,并增加了多字符集编码的支持(不再仅限于 UTF-8)。

增加了 getCharset 和 setCharset 方法,可以通过它们来设置或获取跟服务器通讯的字符集。

增加了 toString 方法,可以将返回结果的 ByteArray 转化为正确编码的字符串。

 下面是个最简单的例子:

ActionScript代码
  1. import org.phprpc.PHPRPC_Error;  
  2. import org.phprpc.PHPRPC_Client;  
  3. var rpc:PHPRPC_Client = new PHPRPC_Client("http://www.phprpc.org/server.php", ['add''sub']);  
  4. rpc.setKeyLength(256);  
  5. rpc.setEncryptMode(2);  
  6. rpc.add_callback = function (result:*, args:Array, output:String, warning:PHPRPC_Error):void {  
  7.     trace(result);  
  8. };  
  9. rpc.add(1, 1);  
  10. rpc.sub(3, 2, function (result:*, args:Array, output:String, warning:PHPRPC_Error):void {  
  11.     trace(result);  
  12. });  

» 阅读全文

1月
14

PHPRPC 3.0 for PHP 发布

正式版:

修正了测试版中存在的一些小问题。

Beta 6 Update:

修正了服务器处理某些客户端提交的参数顺序可能不正确的问题。强烈建议更新,否则新版本的 AS2 客户端无法正常与服务器通讯。

Beta 5 Update:

增加了 getEncryptMode 方法。
将日期序列化和反序列化做了修改,将日期类改为 PHPRPC_Date,避免跟 PEAR 中的 Date 类发生冲突。
修正了 bigint.php 中 BC_Math 扩展处理中的一个错误。
为服务器增加了 setEnableGZIP 方法,默认把 GZIP 输出设为关闭。
修正了一系列小问题.
修正了客户端对 chunked 编码处理的一些错误。
为 PHP 增加了一个 Date 类,该类型对象可以直接与其它语言中的日期时间类型直接交换。

Beta 4 Update:

服务器端实现了加密传输中 Cookie-less 会话支持。
服务器端和客户端都实现了 gzip 压缩传输。
服务器端的 add 方法增加了直接添加整个对象中所有方法的功能。假如 $server 是一个 PHPRPC_Server 对象,则 $server->add($object); 可以把 $object 对象的所有方法一起发布,而不用再将它们一一列出。

下载地址请访问 PHPRPC 官方网站:http://www.phprpc.org

» 阅读全文

下载地址请访问 PHPRPC 官方网站:http://www.phprpc.org

该版本支持 Flash 7 及其以上版本的 ActionScript 2.0,压缩包中有源文件和 mxp 组件包,组件包可以直接安装,安装后可以在 Flash 的组件面板中 Data 目录下找到,直接拖到你的库中就可以使用了。用法跟 js 的用法类似,但是没有 onready 事件(也不需要,不管传不传方法名数组参数,因为 ActionScript 版本不需要从服务器端获取方法列表),也没有 getReady 方法了。同时,也没有 getTimeout、setTimeout、abort、dispose 这些方法。其它常用方法跟 js 一致。

2008年1月14日 更新:

修正了加密问题。另外,该版本的字符串反序列化后为 org.phprpc.util.ByteArray 类型,如果要转换为字符串,只需要执行它的 toString 方法即可。

增加了对 FLash Lite 2/3 的支持。

» 阅读全文