Android消息推送机制调研
Android消息推送机制调研技术选型? ? ?轮询(PULL)
? ? ?轮询(PULL)
?????? 简介:循环主动定时获取服务器消息
?????? 优点:实现简单,可控性强,部署成本低。
?????? 缺点:需要客户端定时或者周期性的服务器接口,太慢则造成消息延迟,太快则消耗电量、流量,实时性差。
?????? 适用情形:更新不是很频繁的应用,比如手电筒、天气之类的功能性应用。
? ? 长连接(PUSH)
? ? ? 简介:客户端与服务器端建立一个基于TCP/IP的长连接,服务器就可以向客户端发送消息。
? ? ? 优点:实时性好,协议成熟,强大,可扩展性好,多用于聊天系统,有开源的方案androidpn。
? ? ? 缺点:协议较复杂,部署成本高。
基于长连接的实现方案?????? 基于MQTT协议实现消息推送方案
????????????? 基于IBM的MQTT协议实现,服务器端没有开源,需要收费,资料文档也很少。
????????????? 参考:MQTT简单例子
???????????????????Android推送通知指南
?????? 基于XMPP协议实现的消息推送方案
1)???????? 谷歌的GCM实现消息推送
???????? ???????? 壮哉我大天朝,地球人都知道,特色国情,服务时断时续不稳定
? ? ? ? ? ? ? 使用教程:https://developers.google.com/android/c2dm/
2)???????? 开源的androidpn实现
?????????????????? 源代码网址:http://sourceforge.net/projects/androidpn
?????????????????? 使用教程:http://blog.csdn.net/berber78/article/details/7638673
?????????????????? 代码笨重,需要结合自身应用做二次开发,米聊采用的是这种方案。?
3)???????? 国内消息推送服务提供商
个推:官方说法和百度、新浪都有合作案例,不知真假。文档、技术支持都很全。
?????????????????? 参见其网页介绍:http://www.igetui.com/home.htm
??????????????激光推送:有很好的文档、及入门案例
?????????????????? 网页介绍:http://www.jpush.cn/
参考实现
???????? 实时性要求低:
?????????????????? 可以采用轮询机制,客户端向服务器端拉取数据,判断是否有更新并向用户提示,当用户点击应用时,在向服务器接口获取最新的应用详情。
???????? 实时性要求高:
?????????????????? 采用长连接机制,推拉相结合,再根据产品具体需求,判断是通过自己搭建长连接服务,还是采用服务商方案。