- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Android 消息推送
使用MQTT协议
使用XMPP协议
使用HTTP轮循方式
使用GCM服务(Google?Cloud?Messaging)
第三方消息推送平台
使用MQTT协议
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议
简介:轻量级的、基于代理的“发布/订阅”模式的消息传输协议。
优点:协议简洁、小巧、可扩展性强、省流量、省电,
目前已经应用到企业领域,且已有C++版的服务端组件rsmb。
缺点:不够成熟、实现较复杂、服务端组件rsmb不开源,部署硬件成本较高
服务器:
Really Small Message Broker (RSMB)
是一个简单的MQTT协议代理服务器
(由IBM提供)
APP Server:
send_mqtt(PHP版的应用服务器)
APP客户端:AndroidPushNotificationsDemo(Android应用)
wmqtt.jar 是IBM提供的MQTT协议的实现。
APP客户端:
1、获取设备ID,并存储
是一串64位的编码(十六进制的字符串),是随机生成的设备的第一个引导,其记录着一个固定值,可视为作为唯一设备标识号
mDeviceID = Secure.getString(this.getContentResolver(), Secure.ANDROID_ID);
2、开启服务,和RSMB服务器建立连接
//建立连接
IMqttClient mqttClient = MqttClient.createMqttClient(mqttConnSpec, MQTT_PERSISTENCE);
mqttClient.connect(clientID, MQTT_CLEAN_START, MQTT_KEEP_ALIVE);
//发送设备id到RSMB服务器
mqttClient.subscribe(topics, MQTT_QUALITIES_OF_SERVICE);
RSMB服务器:
获取到设备id,并保存
APP服务器:
连接RSMB服务器,
发送设备tokudu码和消息内容
简介:基于XML协议的通讯协议,前身是Jabber,目前已由IETF国际标准化组织完成了标准化工作。
优点:协议成熟、强大、可扩展性强、目前主要应用于许多聊天系统中,且已有开源的Java版的开发实例androidpn。
缺点:协议较复杂、冗余(基于XML)、费流量、费电,部署硬件成本高。
(Openfire?+?Spark?+?Smack)
使用XMPP协议
简介:定时向HTTP服务端接口(Web Service API)获取最新消息。
优点:实现简单、可控性强,部署硬件成本低。
缺点:实时性差。
使用HTTP轮循方式
MQTT 和 XMPPMQTT相比XMPP 有几个优势:
二进制,非常精简,适合做大量节点弱网络差的场景,非常适合现在移动互联网的基础设施;MQTT是天然的订阅发布系统,有权限的人都可以往里头发消息;开源的协议和实现;扩展方便且轻量级。XMPP不适合移动网络有几个原因:
协议虽然完整扩展性虽然好,它耗费网络流量很大,交互此说太多,跑起来比MQTT慢很多;另外有高达70%的流量是耗费在XMPP本身的标签和编解码上面。
Google 消息推送GCM服务(Google?Cloud?Messaging)
条件:
1、运行系统为Android2.3或更高版本,其中包括谷歌Play商店、play服务,服务框架。
2、或者是使用了GoogleAPIs,系统在2.2及以上的Android模拟器
3、手机需要能链接google服务器,app服务器能够发送对GCM服务器的HTTPS请求。
简介:Google推出的云消息服务,即第二代的C2DM。
优点:Google提供的服务、原生、简单,无需实现和部署服务端
缺点:Android版本限制(必须大于2.3版本),该服务在国内不够稳定、需要用户绑定Google帐号,受限于Google。
1、 谷歌GCM连接服务器:
接收应用服务器的下行消息,并将它们发送到客户端应用程序。
若是XMPP连接服务器,也可以接受客户端应用程序发送的消息,并将其转发给你的应用服务器。
2、 应用服务器:(利用HTTP或XMPP协议与GCM连接服务器进行通信)
应用服务器发送下行消息到GCM连接服务器, GCM连接服务器,存储该消息并维护消息队列,然后将其发送到客户端应用程序。
如果您实现XMPP,你的应用服务器可以接收来自客户端应用程序发送的消息。
3、 客户端应用程序:(需要安装GCM服务)
要接收和发送GCM的消息,这个程序必须注册GCM服务
文档评论(0)