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

XMPP与HTTP的比较

XMPP的优点

Ÿ   1. 推送数据编程

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

Ÿ   2. 防火墙友好缓存

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

Ÿ   3. 加强的安全性服务器

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

Ÿ   4. 更加丰富的工具箱工具

       XMPP支持更多的操做优化

XMPP的不足

Ÿ   1. XMPP是有状态协议设计

Ÿ   2. XMPP的生态系统较小ip

Ÿ   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

Ÿ   协议扩展

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

相关文章
相关标签/搜索