欢迎来到天天文库
浏览记录
ID:14057475
大小:40.00 KB
页数:5页
时间:2018-07-25
《采用mqtt协议实现android消息推送》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、采用MQTT协议实现Android消息推送(选型)解决方案分析:方案1、使用GCM服务(GoogleCloudMessaging)简介:Google推出的云消息服务,即第二代的G2DM。优点:Google提供的服务、原生、简单,无需实现和部署服务端。缺点:Android版本限制(必须大于2.2版本),该服务在国内不够稳定、需要用户绑定Google帐号,受限于Google。方案2、使用XMPP协议(Openfire+Spark+Smack)简介:基于XML协议的通讯协议,前身是Jabber,目前已由IETF国际标准
2、化组织完成了标准化工作。优点:协议成熟、强大、可扩展性强、目前主要应用于许多聊天系统中,且已有开源的Java版的开发实例androidpn。缺点:协议较复杂、冗余(基于XML)、费流量、费电,部署硬件成本高。方案3、使用MQTT协议(更多信息见:http://mqtt.org/)简介:轻量级的、基于代理的“发布/订阅”模式的消息传输协议。优点:协议简洁、小巧、可扩展性强、省流量、省电,目前已经应用到企业领域(参考:http://mqtt.org/software),且已有C++版的服务端组件rsmb。缺点:不够成
3、熟、实现较复杂、服务端组件rsmb不开源,部署硬件成本较高。方案4、使用HTTP轮循方式简介:定时向HTTP服务端接口(WebServiceAPI)获取最新消息。优点:实现简单、可控性强,部署硬件成本低。缺点:实时性差。------------------------------------------------(选择)推荐方案: 推荐使用MQTT协议的方案进行实现,主要原因是:MQTT最快速,也最省流量(固定头长度仅为2字节),且极易扩展,适合二次开发。 消息分发服务:推荐使用activieMQ,主要原因
4、activieMQ是分布式的具有高性能可扩展性,是apache的下的项目有很好的团队维护升级。-----------------------ActiveMQ,mqtt部分资料--------------------ApacheApollo1.0,新一代ActiveMQ消息系统Apollo的特性如下:支持Stomp1.0和Stomp1.1协议主题和队列队列浏览器主题持久订阅镜像队列可靠的消息传递消息过期和交换消息选择器JAAS验证基于ACL的授权支持SSL/TLS,证书验证RESTManagementAPI详细信息
5、参阅:http://activemq.apache.org/apollo/blog/releases/release-1.0.html下载:http://activemq.apache.org/apollo/download.html文档:http://activemq.apache.org/apoll...site/documentation/消息传输协议MQTTMQ遥测传输(MQTT)是轻量级基于代理的发布/订阅的消息传输协议,设计思想是开放、简单、轻量、易于实现。这些特点使它适用于受限环境。例如,但不仅限于
6、此:网络代价昂贵,带宽低、不可靠。在嵌入设备中运行,处理器和内存资源有限。该协议的特点有:使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合。对负载内容屏蔽的消息传输。使用TCP/IP提供网络连接。有三种消息发布服务质量:“至多一次”,消息发布完全依赖底层TCP/IP网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。“至少一次”,确保消息到达,但消息重复可能会发生。“只有一次”,确保消息到达一次。这一级别可用于如下情况,在计费系统中,
7、消息重复或丢失会导致不正确的结果。小型传输,开销很小(固定长度的头部是2字节),协议交换最小化,以降低网络流量。使用LastWill和Testament特性通知有关各方客户端异常中断的机制。详细信息参阅::http://mqtt.org/下载:http://mqtt.org/software文档:http://mqtt.org/documentation简单demopackagecom.pig.test.mqtt;importcom.ibm.mqtt.MqttClient;importcom.ibm.mqtt.M
8、qttException;importcom.ibm.mqtt.MqttSimpleCallback;publicclassSubscribeClient{privatefinalstaticStringCONNECTION_STRING="tcp://192.168.1.60:1883";privatefinalstaticbooleanCLEAN_START=true
此文档下载收益归作者所有