Hprose 有三个使用 JavaScript 实现的版本,分别是:
- https://github.com/hprose/hprose-js(后面我们称它为 Javascript 版本)
- https://github.com/hprose/hprose-html5(后面我们称它为 HTML5 版本)
- https://github.com/hprose/hprose-nodejs(后面我们称它为 node.js 版本)
其中 JavaScript 是较早的版本,HTML5 版本是后来新加的版本,这两个版本都是为浏览器设计的。node.js 版本是为 node.js 平台专门设计的。
JavaScript 版本支持的浏览器和平台更多,比如 IE6 到 IE9,Safari 5,Opera,Netscape,Konqueror,甚至 Symbian 的浏览器都支持。
HTML5 版本只支持较新的对 HTML5 支持良好的浏览器,但是速度更快,体积更小,对二进制数据传输支持更好。
Hprose for JavaScript 在 2.0 版本之前,在功能上比 HTML5 版本要弱很多。不过在升级到 2.0 版本之后,HTML5 版本支持的大部分功能 JavaScript 版本也都支持了。比如对 WebSocket 的支持,对二进制数据传输的支持,对 TCP 的支持(仅支持某些平台)等等。
升级之后的 JavaScript 版本在 API 接口上也跟 HTML5 版本做了尽可能的统一。不过在某些地方仍然有些差别,比如对于属性的处理,有些属性在 JavaScript 版本中是以方法的形式来实现的,而在 HTML5 中则是以属性方式实现的。这样做的原因是,旧版本的浏览器没有提供对属性的封装功能。这些区别之处都会在文档中一一列出。如果在这方面遇到问题,只需查看一下该文档即可。
下面还有一份 hprose-js, hprose-html5 和 hprose-nodejs 的功能对比列表:
功能特征 | hprose-js | hprose-html5 | hprose-nodejs |
---|---|---|---|
二进制数据支持 | |||
浏览器应用 | |||
老旧版本的浏览器 | |||
跨域支持 | Flash 和 CORS 方式 | CORS 方式 | |
HTTP 客户端 | |||
TCP 客户端 | |||
UNIX Socket 客户端 | |||
WebSocket 客户端 | |||
服务器端应用程序 | |||
命令行工具 | |||
桌面图形界面应用程序 | |||
混合应用程序 | |||
HTTP 服务器 | |||
TCP 服务器 | |||
UNIX Socket 服务器 | |||
WebSocket 服务器 | |||
Promises/A+ 规范支持 | |||
RequireJS(AMD) | |||
SeaJS(CMD) | |||
CommonJS | |||
全局对象(HproseClient) | |||
名空间(hprose.Client) |
- 表示未测试,可能支持
- 表示支持
- 表示不支持
原文:
https://github.com/hprose/hprose-js/wiki/JavaScript-%E7%89%88%E6%9C%AC%E7%9A%84%E5%8C%BA%E5%88%AB