Android消息推送机制在城市通中的应用研究

时间:2022-08-24 10:57:21

Android消息推送机制在城市通中的应用研究

摘 要:智能手机App应用五花八门,涉及了日常生活吃、穿、住、行、娱乐等各个方面,方便和丰富了我们的生活,加快了信息化生活的脚步,人们利用智能手机可以轻松地查收邮件、移动办公、查看新闻、下载应用等。本文提到的城市通也是智能手机APP应用,能够为人们的日常生活带来很大方便,其中一个重要功能是提供生活中煤气费、水费、电费欠费提醒功能,为了及时地传递此类信息,需要为此类信息实现消息推送功能,在Android手机操作系统中消息推送的方式有几种可以供选择,本文通过对这几种推送消息的方式的特点比较,选择最适合手机城市通的推送方式。

关键词:App应用;城市通;Android;消息推送

中图分类号:TN929.5;TP311.52

1 研究背景

1.1 手机城市通研究背景

21世纪是一个信息化的时代,人们的生活节奏也变得很快,你的钱包里钱不一定很多,但是各种银行的银行卡至少有几个吧,比如工资卡、信用卡、水费卡、电费卡、煤气卡、社保卡等,现在再也没有人到你家里敲门去收水、电、煤气费了,只要你在相应的卡中预存一定额数的钱,就可以享受足不出户的优越感,体会现代化生活了。但是当你足不出户的时候,有没有突然想起,你的水、电、煤气卡中还有没有剩余的钱了呢,不知道什么时候家中是否会突然停电或是停水,有些担心呢?

城市通是运行在手机Android操作系统上的一款软件,它给我们越来越快的信息化生活助力,成为大家生活中的电子小秘书,其主要功能是负责提供一个特定城市吃、穿、住、行等生活方面的各种相关信息。包括水、电、煤气的欠费提醒,市级组织的大型活动通知,买/卖房屋信息,停水/停电通知,商场打折促销通知,饭店地点查询及新增特色菜等信息。其中水、电、煤气的欠费提醒需要实现消息推送,这样能够第一时间将信息通知到用户,达到信息的即时性。替您解决生活中的忧虑和烦恼,减轻您的生活压力,跟上信息化时代的脚步。

1.2 城市通主要功能

手机城市通主要功能与提供信息如下:(1)市级综合通知:主要是市级的文字信息的通知,包含小区停水、停电、市文化部的消息、电信/有线的信息、交通局的信息等。(2)时时交通:及时交通路况信息,包括交通管制、修路、交通拥堵等信息。带有语言功能,考虑到开车不方便查看手机信息的情况,时时交通模块可以将时时的交通信息用语音形式读出。出行路况查看与查询,包括主要交通旅游路线高速公路的封路、畅通的情况,并可以提供旅游的主要路线。(3)我的消息:提示水、电、煤气每个月的消费量,并具有欠费提前提醒功能,保证您的正常生活。(4)酒店查询:提供所在城市酒店的打折、特价、特色、优惠等信息。并提供酒店的联系电话,可以打电话定座。(5)商场活动:第一时间为您提供商场的打折与促销信息。(6)房屋买卖:为您提供房屋买卖等信息,并保证信息的可信度,可以查看房屋的文字和图片信息,图文并茂。

上面提到的6个手机城市通功能,其中第三个“我的消息”最要体现消息的即时性,即当用户存在费用不足的情况时,应该立刻给用户一个提示,所以此模块需要实现Android消息推送机制。

2 消息推送机制的简介

所谓消息推送,需要不定时地从服务器端向手机客户端即时推送各种通知消息。在iPhone上已经有比较简单和完美的推送解决方案。但是在Android平台上实现起来相对比较麻烦。一般来说,想实现消息推送,都需要应用程序与服务器进行交互,到服务器端获取数据。获取数据的方法一般来说有两种形式,第一种是在客户端使用Pull的方式,每隔一段时间到服务器上获取信息,看是否有更新的信息;第二种形式是在服务器端使用push方式,即推送的意思,当服务器端有新信息了,就把信息推送到客户端上。

在手机城市通软件中到底是采用Pull方式还是采用push方式更适合呢?水、电、煤气的用量都是以月为单位进行计算的,如果欠费的话,也应该是一个月才通知一次,那么如果采用pull方式不定时地向服务器获取信息的话,会浪费客户端的网络流量,更主要的是耗费的电量多。所以在这里应该采用push方式更适合,当服务器有欠费通知时,在服务器端向客户端push一个消息。

所谓push即推送,是通过一定的技术标准或协议,在互联网上向用户传送所需要的信息的一项技术。通过推送技术,减少了客户端在网络上搜索的时间,帮助用户高效率的发掘有价值的信息。

现在有很多应用程序中都使用了消息推送机制,比如新浪微博推送最新的朋友消息;网易新闻推送一些重要的新闻;天气预报会推送最新的天气状况;手机炒股软件推送最新的股票资讯;Gmail、Gtalk推送最新的Mail信息和IM信息;微信推送最新的语音和文字信息;有信网络电话推送签到赠送话费的信息等等。

3 消息推送方式的解决方案

下面介绍和分析了几种Android操作系统中消息推送的几种解决方案,从中我们选择一种比较适合手机城市通中的消息推送解决方案。

3.1 Google公司的C2DM。在Android手机平台上,Google提供C2DM(Cloud to Device Messaging)帮助开发者从服务器向Android应用程序发送数据的服务。它提供了一个简单的、轻量级的机制,允许服务器可以通知移动应用程序直接与服务器进行通信,以便于从服务器获取应用程序更新和用户数据。但经过一段时间的研究实践后,发现此种方式存在一些缺点。首先C2DM内置于Android的2.2系统上,不能向下兼容以前的Android系统;其次C2DM需要依赖于Google官方提供的C2DM服务器,因为国内访问Google网站经常出现问题,所以如果想要正常使用,我们开发的App Server必须也在国外,这一点对于开发一般应用的开发者来说是很难实现的,让开发者望尘莫及。

3.2 MQTT协议实现消息推送。MQTT是由IBM公司提供的,是一个轻量级的消息/订阅协议,它是实现基于手机客户端的消息推送服务器的理想解决方案。我们可以从网站下载wmqtt.jar,编写客户端与服务器端实现消息推送。

3.3 RSMB实现消息推送。RSMB(Really Small Message Broker)也是由IBM公司提供的,是一个简单的MQTT,它负责接收来自服务器的消息并将其转发给指定的移动设备。

3.4 XMPP协议实现消息推送。XMPP,可扩展通讯和表示协议,是基于可扩展标记语言XML的协议,它用于即时消息以及在线探测。实际上Google官方的C2DM服务器底层也是采用的XMPP协议进行的封装。

Android pn是一个基于XMPP协议的Java开源消息推送的实现,它包含了完整的客户端和服务器端。它是基于open fire进行的修改,服务器端是采用Java语言spring框架实现的,服务器包含两个部分,一个是侦听在5222端口上的XMPP服务,负责与客户端的XMPP Connection类进行通信,作用是用户注册和身份认证,并发送推送通知消息。另外一部分是Web服务器,采用一个轻量级的HTTP服务器,负责接收用户的Web请求。服务器架构最上层包含四个部分,分别是Session Manager,Auth Manager,Presence Manager和Notification Manager。Session Manager负责管理客户端与服务器之间的会话,Auth Manager负责客户端用户认证管理,Presence Manager负责管理客户端用户的登录状态,Notification Manager负责实现服务器向客户端推送消息功能。

XMPP协议实现消息推送这个方案最大的优势就是简单,它不像C2DM那样依赖操作系统版本,也不用担心Google服务器不可用。利用XMPP协议我们还可以进一步对协议进行扩展,实现更为完善的功能。目前这个方案只能发送文字消息,不过对于一般消息推送来说足够了,因为我们不能指望通过推送得到所有的数据,一般情况下,我们只是利用推送告诉手机端服务器发生了某些改变,当客户端收到通知以后,再进行详细信息的查看。通过对以上几种消息推送方式的分析,在手机城市通中我们采用了XMPP协议来实现消息的推送。

参考文献:

[1]张长学.移动推送技术面面观[J].移动通信,2011(05).

[2]张逸炎.移动终端即时消息推送系统的应用开发[A].第十七界全国青年通信学术年会论文集,2012.

[3]陈苏.城市移动电子税务推送式服务研究[D].华中科技大学,2012.

[4]仲玮.基于XMPP协议的校园实时消息推送系统的研究[J].武汉大学学报,2012(01).

作者单位:辽宁建筑职业学院,辽宁辽阳 111000

上一篇:光纤通信实现计算机数据传输 下一篇:浅谈计算机应用型人才的教育研究