即时通信协议对比

Android中的即时通信,就是客户端要与服务器创建长时间的链接,正常状况下Android中请求服务器数据后,链接通常断开。但即时通信类的对消息的实时性要求比较高。须要客户端与服务器创建长时间的链接,这样,才能保证消息的时实性。

这里写图片描述

一、XMPP协议

一、XMPP基于xml,XMPP用TCP传递的是xml流。它具备xml的灵活性和扩展性。能够实现服务类实时通信。android

XMPP的核心XML流传输协议的定义使得XMPP可以在一个比以往网络通讯协议更规范的平台上。借助于XML易于解析和阅读的特性。安全

XMPP核心协议通讯的基本模式就是先创建一个stream,而后协商一堆安全之类的东西,中间通讯过程就是客户端发送XML Stanza,一个接一个的。服务器根据客户端发送的信息以及程序的逻辑,发送XML Stanza给客户端。可是这个过程并非一问一答的,任什么时候候都有可能从一方发信给另一方。通讯的最后阶段是关闭流,关闭TCP/IP链接。服务器

二、MQTT协议

这里写图片描述
MQTT(Message Queuing Telemetry Transport)是IBM开发的一个即时通信的协议。 
MQTT的特色: 
1)、使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合; 
2)、对负载内容屏蔽的消息传输; 
3)、使用 TCP/IP 提供网络链接; 
4)、有三种消息发布服务质量: 
“至多一次”,消息发布彻底依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于以下状况,环境传感器数据,丢失一次读记录无所谓,由于不久后还会有第二次发送。 
“至少一次”,确保消息到达,但消息重复可能会发生。 
“只有一次”,确保消息到达一次。这一级别可用于以下状况,在计费系统中,消息重复或丢失会致使不正确的结果。 
5)、小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以下降网络流量;网络

MQTT很是适合做为Android手机客户端与服务器推送消息。其中Sohu,Cmstop手机客户端中均有使用到MQTT做为消息推送消息。据Cmstop主要负责消息推送的高级研发工程师李文凯称,随着移动互联网的发展,MQTT因为开放源代码,耗电量小等特色,将会在移动消息推送领域会有更多的贡献,在物联网领域,传感器与服务器的通讯,信息的收集,MQTT均可以做为考虑的方案之一。 ui

相关文章
相关标签/搜索