文档详情

移动手机消息推送机制

s9****2
实名认证
店铺
DOCX
201.04KB
约10页
文档ID:556268629
移动手机消息推送机制_第1页
1/10

移动消息推送机制由于公司要做一个 android 的消息推送功能,让我进行了一个调研,发现网上没有一个集中说 明的地方,自己在网上搜罗了一些资料并且自己总结了一下对于消息的提醒方式可以分为四种:固定窗口、弹出窗口、短信和Push信息下面的针对 于 push 信息的机制和技术实现向大家介绍一下首先,我们要知道什么是Push信息?所谓信息推送,就是"web广播",是通过一定的技术标准或协议,在互联网上通过定期传送 用户需要的信息来减少信息过载的一项新技术推送技术通过自动传送信息给用户,来减少用于 网络上搜索的时间它根据用户的兴趣来搜索、过滤信息,并将其定期推给用户,帮助用户高效 率地发掘有价值的信息简单的来说,信息推送就是服务器端主动向客户端发送信息,客户端进行接收信息如下图:使用推送信息的好处:1、节省用户的电池电量2、你可以通过推送通知来告知你的用户在程序中发生了一些有趣的事,即使程序没有运行现在很多应用程序都是用的推送的机制: 包括新浪微博,推送最新的朋友消息;墨迹天气推送最新的天气状况;网易新闻,推送重要的新闻;同花顺炒股推送最新的股票资讯;,推送最新的语音最新Gmail、Gtalk推送最 新的Mail信息和IM信息。

下面,我们了解一下现在主流的 push 机制IPhone (APPLE)的工作机制可以简单的概括为下图:iPhone 自 3.0 之后推出消息推送机制,原理是消息由服务器统一处理APNSat ionUMiPhoneProviderntrtifi cation图中Provider是指某个iPhone软件的Push服务器这篇文章我将使用Java作为ProviderAPNS 是 Apple Push Notification Service( Apple Push 服务器)的缩写,是苹果的服务器 上图可以分为三个阶段第一阶段:Java应用程序把要发送的消息、目的iPhone的标识打包,发给APNS第二阶段:APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone, 并把消息发到iPhone第三阶段:iPhone把发来的消息传递给相应的应用程序,并且按照设定弹出Push通知iOSTm OS asks APNS for » totenWhEM- wmetiiirrg incercstlnsi hopper your server $ends b p*gh nvtifiution to the APW5 serrerl.Pie app isglftens^FfKJsn nctiiications1. Hie serKte the t€ken tc wur serverAPNSServer5. APNS sends- the pu&h rwtilkatiQn to yqutr 日ppYour Server■ SSL匸巳"In匚日孔已■ Priva-te KeyYour App* App ID* Provision Profile* DeviEe IcikEr从上图我们可以看到。

1、首先是应用程序注册消息推送2、IOS 跟 APNS Server 要 deviceToken应用程序接受 deviceToken3、 应用程序将deviceToken发送给PUSH服务端程序4、 服务端程序向APNS服务发送消息5、 APNS服务将消息发送给iPhone应用程序APNs和iPhone保持15分钟的心跳式长连接,维护和服务器的联系正常,否则会不 停发起连接,直到连接到服务器为止程序不必实时开启和主动检查更新,当收到APNs消息 时,iPhone会弹出对话框Push消息并伴随着声音,用户可以选择“view”或者“close”即使用户当前处在离线状态,用户收到消息之后激活程序,再通过程序链接应用服务器下载邮件或 者录音WP7 ( Microsoft )的 Push 机制如下图:WP7的也有相应的推送服务,无论程序是否开启都可以界面顶部推送Toast Notification,并 显示10秒WP7的Push Client负责于服务器交互,接受到消息时再传送给相应的应用程序, 而不需要应用程序各自维护一个进程如果程序被钉在首页,服务器推送瓦片通知(Tile Notification ),改变瓦片的背景图片、数字和标题属性。

而弹出框式的原生推送(Raw Notification )只能应用在程序开启时,容许实时更新界面Ftksh :NoiificaTJon FkffwFrjnwwwlcW troioftPushSreivi

356Spring-3rO1』a sonikut wfli MHTke funny 5 tuffr yg-・Lmig Gorte Valentlmi! 斗 * carenes% h«artSiBubdgef flevtew Meeting in 1S minuHes・ Main BoftrciroCim备严 Lcrc iM illcrMassed call at t:23p黑莓的推送是最早的,最早应用在邮件上,而且黑莓的推送机制也是加密最好的,最安全的机制下面我们来详细的介绍一下 android 的推送机制:Android(Google):首先介绍一下 google 官方应用的 push:1)如果你有新的Gmail由M牛,可以马上收到邮件通知,这个中间可能有2 , 3秒的延迟,一般感觉还是很及时的;2 )如果你的联系人和Google Contanet是关联的话,你用桌面浏览器访问Gmail,修改联系人信息,很快新的联系人信息就会同步到你上在 Google I/O 2010 介绍了 Android 2.2 导入的 Android Cloud to Device Messaging(C2DM)服务,C2DM)作为An droid 2.2的一部分已经发布了。

C2DM允许第三方开发者开发相关的应用来推送少量数据消息到用户的上,其机制如下图:UP!APPCONN SERVERC2D MSG FRONTENDAn droid Cloud to Device Messagi ng (C2DM)是用来帮助开发者从服务器向 An droid 应 用程序发送数据的服务该服务提供了一个简单的、轻量级的机制,允许服务器可以通知移动应 用程序直接与服务器进行通信,以便于从服务器获取应用程序更新和用户数据 C2DM 服务负 责处理诸如消息排队等事务并向运行于目标设备上的应用程序分发这些消息启用 C2DM 的过程:1,移动设备:必须运行an droid,并且安装Market,至少有一个登录的google账号2,服务器:自己的服务器3,C2DM服务器:google的服务器授权机制:1, Sender ID :—个 google账号,用于标示开发者的身份,比如hxzhoupeng@2 , Application ID : Manifest.xml 里面的 pacakage name用于标示应用程序 3 , Registration ID :当应用程序向C2DM服务器注册时,C2DM服务器会返回这个ID,当应 用程序获得这个ID之后,应该告诉自己的服务器,自己的服务器把这个ID存在数据库里面, 用于告诉C2DM服务器标示客户端。

4,Google User Account :要使用C2DM服务,必须有一个google账号5,Sender Auth Token :自己的服务器与C2DM服务器通信的认证应用程序发送 Intent , com.google.android.c2dm.intent.REGISTER ,附上自己的SenderID和AppId,就可以向C2DM服务器进行注册,注册成功之后,可以收到 REGISTRATION Intent,获得 Registration ID,这个 Registration ID 是会被 C2DM 改变的, 所以这个REGISTRATION Intent可能会收到多次,要记得存储和发送给自己的服务器 通过对比研究发现C2DM机制存在以下缺点:1、 C2DM内置于An droid的2.2系统上,无法兼容老的1.6到2.1系统;2、 C2DM需要依赖于Google官方提供的C2DM服务器,由于国内的网络环境,这个服务经 常不可用,如果想要很好的使用,我们的App Server必须也在国外,这个恐怕不是每个开发者 都能够实现的;除了 C2DM在实现An droid消息推送机制的方案还有以下几种:1轮询(polling ):应用程序应当阶段性的与服务器进行连接并查询是否有新的消息到达,你必须自己实现与服务器之间的通信,例如消息排队等。

而且你还要考虑轮询的频率,如果太慢可 能导致某些消息的延迟,如果太快,则会大量消耗网络带宽和电池2、长连接:这个方案可以解决由轮询带来的性能问题,但是还是会消耗的电池Apple的 推送服务之所以工作的很好,是因为每一台仅仅保持一个与服务器之间的连接,事实上C2DM 也是这么工作的不过这个方案也存在不足,就是我们很难在上实现一个可靠的服 务 Android 操作系统允许在低内存情况下杀死系统服务,所以你的通知服务很可能被操作系 统 Kill 掉了这种方法通过come (基于HTTP长连接的"服务器推”技术)长连接也可以实现详细可以 参照 http://www.ibm.eom/developerworks/cn/web/wa-lo-comet/,但是这并不是最有的 一种方式,在An droid下最有的方式应该采取XMPP协议推送An droid信息:首先介绍一下XMPP基于可扩展标记语言(XML )的协议,它用于即时消息(IM )以及探 测这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息详细参考:http://zh.wikipedia.org/zh-cn/XMP。

下载提示
相似文档
正为您匹配相似的精品文档