PHPRPC 和 Buffalo 有那些差别

[quote="zhou7707"] 问一下,对Comet的支持怎么样?
和陈金洲的Buffalo有那些差别?[/quote]

1、PHPRPC 与 Buffalo 定位不同,Buffalo 仅定位于一个 Javascript 到 Java 的远程过程调用。而 PHPRPC 不但支持 JavaScript 到任何后端语言的远程过程调用,还支持任意语言到任意语言的远程过程调用。也就是说,PHPRPC 既包含了 Buffalo、DWR 这些工具的能力,也包括了 Hessian、Web Service、ICE 这样的能力。所以一个后端可以服务于任何前端,一个前端也可以毫无差别的调用任意后端。它甚至给 JavaScript 这样的仅在浏览器中运行的语言都提供了完整的功能支持。

2、PHPRPC 在使用上比 Buffalo 更容易。PHPRPC 的 JavaScript 客户端在调用时,可以直接使用远程过程(方法/函数)名加参数直接调用,这种方式更直观也更方便,另外也提供跟 Buffalo 中 remoteCall 等价的 invoke 方法。

3、PHPRPC 即使在 JavaScript 中也比 Buffalo 所提供的功能强。例如,PHPRPC 支持无差别轻松跨域,Buffalo 不支持。PHPRPC 支持加密传输,Buffalo 不支持。PHPRPC 支持服务器端输出内容重定向,Buffalo 不支持。PHPRPC 支持引用参数传递,Buffalo 不支持。

4、PHPRPC 不仅仅是为 JavaScript 提供的,因此它的 JavaScript 客户端只负责一件事就是传输,所以表单管理这样的事情它不做,也因此可以跟任何目前流行的 Ajax 框架完美的联合使用,例如 JQuery、Extjs、YUI、Prototype、Mooltools 等。

5、PHPRPC 完美支持 Session,不向 Buffalo 那样会有 Session 丢失问题(关于 Buffalo 的 Session 丢失问题可以参见 Buffalo 的文档)。原因是它们的实现方式不同。

6、Buffalo 采用 XML 数据表示格式,跟 PHPRPC 的半文本数据格式相比效率上要低很多。关于 XML 和 PHPRPC 序列化和反序列化的效率对比在[url=http://www.iteye.com/topic/333720]这个帖子[/url]中有很明显的对比,效率是几十到几百倍的差距。

7、Buffalo 从 2007 年到现在没有更新过,PHPRPC 到目前为止仍然是一个活跃的不断发展壮大的项目。

最后,PHPRPC 不仅仅用于 JavaScript 到 Java 的通讯,因此 Comet 这种方式不直接提供支持,但是使用 PHPRPC 你仍然可以做到这种效果。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值