天天看点

XMPP的优势

1、推送数据

    Http客户端只能从服务器那里请求数据。除非服务器正在相应客户端请求,否则它不能向客户发送数据。但XMPP连接是双向的。任何一方在任何时候都可以向另一方发送数据,只要连接处于打开状态即可。

    这种推送数据的能力极大的拓展了Web应用程序和协议设计的可能性。应用程序不必为获取更新而进行效率低下的轮询,而是能够在新信息可用时立即获得通知。这不仅减少了请求的总数量,而且让新信息变的可用的时刻与客户端获悉该信息可用的时刻之间的延迟几乎为零。

2、取悦防火墙

    有些Web应用程序支持HTTP回调的使用,Web服务器请求另一个HTTP服务器以发送数据。如果不是因为防火墙、NAT以及Internet的其他现实情况,这本身是一个推送数据的便利功能。但实际上,很难从外部世界建立通往客户端的任何连接。

    XMPP连接是对防火墙和NAT友好的,这是因为服务器到客户端通信所用的连接是由客户端发起的。一旦建立连接,服务器就可以将其所需的所有数据推送给该客户端,就像在HTTP请求的响应中所做的那样。

3、增强安全

    XMPP构建在TLS和SASL技术之上,它们为XMPP连接提供了牢固的加密和安全功能。虽然HTTP使用SSL,但HTTP身份验证机制并没有被大量的被开发人员实现和使用。相反,web中充斥着大量实现自己的身份验证方案的站点。

4、更大的工具箱

    HTTP仅限于简单的请求-响应语义而且只支持少数几项操作,即GET,PUT,POST,DELETE,等。XMPP包含三种不同的低级工具(<presence>、<message>、<iq>)以及将近300种扩展。

继续阅读