基于XMPP的即时通讯系统的创建(三)— 程序设计概览

XMPP与HTTP的比较(http://www.cnblogs.com/jiyuqi/tag/xmpp/)
编程

XMPP的优点
浏览器

1. 推送数据
缓存

HTTP只能从服务器哪里请求数据,除非服务器正在响应客户端请求,不然不能向客户端发送数据。但XMPP链接是双向的,任何一方在任什么时候候均可以向另一方发送数据,只要链接是打开状态。
安全

2 防火墙友好服务器

XMPP对防火墙和NAT友好,由于服务器到客户端的链接是由客户端发起的,一旦链接,服务器就能够将其所须要的数据推送给客户端。
网络

3. 加强的安全性
工具

XMPP构建在TLS和SASL上,具备更好的安全性
优化

4. 更加丰富的工具箱
设计

XMPP支持更多的操做
blog

XMPP的不足

  1. XMPP是有状态协议

Ÿ  2. XMPP的生态系统较小

Ÿ  3. XMPP有更大的开销

XMPP未对短时间会话和简单请求进行优化,创建、维护和销毁XMPP都须要一些资源。

对于更长的链接和更加复杂的交互,XMPP和HTTP的开销能够忽略不计。

桥接XMPP与Web

主流浏览器暂时没有支持XMPP协议,可是能够经过设置和编程在HTTP链接上创建高效的XMPP会话通道。这种通道的创建使用到了名为HTTP长链接的技术。经过联合使用一个简单的基于HTTP的管理协议以及XMPP链接管理器,咱们能够将XMPP(全部功能)带入到HTTP应用程序中。

长轮询

是早期定时刷新网页获取数据更新的方法改进,服务端经过维持一个空链接,即时通知客户端数据变动。由于每一个请求都可以持续较长时间,所以称为长轮询。人们已经设计了多个库和协议来利用长轮询技术,XMPP是其中一个较早实现,在XMPP中,这种桥接被称为BOSH(Bidirection stream Over Synchronous HTTP,在同步HTTP上传递双向数据流)。

管理链接

XMPP链接能够持续至关长的时间,但HTTP请求确至关短。链接管理器负责维护第三方的XMPP链接并经过HTTP长链接技术提供对链接的访问。

浏览器和链接管理器都使用BOSH协议经过HTTP通讯,并提供了安全功能,链接管理器与服务端通讯就像一个普通的客户端同样,延时也比较低。

并且链接管理器还有以下的优点:

Ÿ  客户端能够切换网络

Ÿ  托管稳固,能够容忍故障

Ÿ  可好性好,链接管理器缓存数据

Ÿ  对防火墙友好(运行与HTTP端口)

让Javascript理解XMPP协议

经过Javascript的Strophe库来实现,能够隐藏底层细节并具备很好的效率。

构建XMPP应用程序

浏览器平台

能够选用jQuery操做用户数据及用户界面。

Ÿ  XMPP服务器

能够选用Tigese或者OpenFire

Ÿ  协议扩展

若是有扩展协议的需求,应该首先试着组合现有协议或者将协议设计的尽可能简洁。

相关文章
相关标签/搜索