androd 推送协议的选择

找了很多种方案,比如:googleGCM服务(google时不时会被墙掉),这里选择了两个比较好的而且是多人用的出来比较一下。

下面方案内容来源于网络

方案1、使用XMPP协议(Openfire + Spark + Smack

简介:基于XML协议的通讯协议,前身是Jabber,目前已由IETF国际标准化组织完成了标准化工作。
优点:协议成熟、强大、可扩展性强、目前主要应用于许多聊天系统中,且已有开源的Java版的开发实例androidpn
缺点:协议较复杂、冗余(基于XML)、费流量、费电,部署硬件成本高。
 
第三方的androidpn,和C2DM一样,都是基于XMPP扩展的,是一个开源的项目,据说不错。
http://sourceforge.net/projects/androidpn/
但是是基于长连接的,如果客户端数量大,特别像手机这种都是长期在线的设备,
会有两个问题,(1)服务器压力,(2)手机的电池不够用啊,电量卡卡卡的被你耗光了(需要优化网络机制)。

方案2、使用MQTT协议(更多信息见:http://mqtt.org/

简介:轻量级的、基于代理的发布/订阅模式的消息传输协议。
优点:协议简洁、小巧、可扩展性强、省流量、省电,目前已经应用到企业领域(参考:
http://mqtt.org/software),且已有C++版的服务端组件rsmb
缺点:不够成熟、实现较复杂、服务端组件rsmb不开源,部署硬件成本较高。

Android推送通知指南》http://blog.csdn.net/joshua_yu/article/details/6563587

上述文章的作者推荐使用MQTT协议的方案进行实现,主要原因是:MQTT最快速,也最省流量(固定头长度仅为2字节),且极易扩展,适合二次开发。

但是考虑到XMPP是用Java的,我就选择XMPP吧!

你可能感兴趣的:(androd 推送协议的选择)