移动手机消息推送机制

上传人:cn****1 文档编号:507413603 上传时间:2023-02-23 格式:DOC 页数:10 大小:241KB
返回 下载 相关 举报
移动手机消息推送机制_第1页
第1页 / 共10页
移动手机消息推送机制_第2页
第2页 / 共10页
移动手机消息推送机制_第3页
第3页 / 共10页
移动手机消息推送机制_第4页
第4页 / 共10页
移动手机消息推送机制_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《移动手机消息推送机制》由会员分享,可在线阅读,更多相关《移动手机消息推送机制(10页珍藏版)》请在金锄头文库上搜索。

1、移动手机消息推送机制由于公司要做一个android的消息推送功能,让我进行了一个调研,发现网上没有一个集中说 明的地方,自己在网上搜罗了一些资料并且自己总结了一下。对于消息的提醒方式可以分为四种:固走窗口、弹出窗口、手机短信和Push信息。下面的针 对于push信息的机制和技术实现向大家介绍一下。首先,我们要知道什么是Push信息?所谓信息推送,就是web广播,是通过一走的技术标准或协议,在互联网上通过走期传 送用户需要的信息来减少信息过载的一项新技术。推送技术通过自动传送信息给用户,来减少 用于网络上搜索的时间。它根据用户的兴趣来搜索、过滤信息,并将其走期推给用户,帮助用 户高效率地发掘有价

2、值的信息。简单的来说,信息推送就是服勢器端主动向客户端发送信息,客户端进行接收信息。如下图:Push one your n巳w%!New oonte nU使用推送信息的好处:Is节省用户的电池电呈。2、你可以通过推送通知来告知你的用户在程序中发生了一些有趣的事,即使程序没有运行。现在很多应用程序都是用的推送的机制:包括新浪微博,推送最新的朋友消息;墨迹天气推送最新的天气状况;网易新闻,推送重要的新闻;同花顺手机炒股推送最新的股票资讯;微信,推送最新的语音最新。Gmail、Gtalk推送最新的Mail信息和IM信息。下面,我们了解一下现在主流手机的push机制。IPhone ( APPLE )的

3、工作机制可以简单的概括为下图:iPhone自之后推出消息推送机制,原理是消息由服务器统一处理。IPhone(notification)APNSificationjficotionlDLC enl图中# Provider是指某个iPhone软件的Push服务器f这篇文章我将使用Java作为Provider。APNS 是 Apple Push Notification Service ( Apple Push 服务器)的缩写 z 是苹果的服务口口HSo上图可以分为三个阶段。第一阶段:Java应用程序把要发送的消息、目的iPhone的标识打包,发给APNS。第二阶段:APNS在自身的已注册Push服

4、务的iPhone列表中,查找有相应标识的iPhone , 并把消息发到iPhone。第三阶段:iPhone把发来的消息传递给相应的应用程序,并且按照设走弹出Push通知。从上图我们可以看到。1. 首先是应用程序注册消息推送。2、IOS 跟 APNS Server 要 deviceToken。应用程序接受 deviceTokeno3、应用程序将deviceToken发送给PUSH服务端程序。4、服务端程序向APNS服务发送消息。5、APNS服务将消息发送给iPhone应用程序。APNs和iPhone保持15分钟的心跳式长连接,维护手初和服务器的联系正常,否则手机会不 停发起连接,直到连接到服勢器

5、为止。程序不必实时开启和主动检查更新,当收到APNs消息 时f iPhone会弹出对话框Push消息并伴随看声音用户可以选择view或者close。即使用户当前处在离线状态,用户收到消息之后激活程序,再通过程序链接应用服务器下载邮 件或者录音。WP7 ( Microsoft)的 Push 机制如下图:WP7的也有相应的推送服务,无论程序是否开启都可以界面顶部推送Toast Notification ,并 显示10秒。WP7的Push Client负责于服务器交互,接受到消息时再传送给相应的应用程 序,而不需要应用程序各自维护一个进程。如果程序被钉在首页,服勢器推送瓦片通知(Tile Notif

6、ication ),改变瓦片的背景图片、数字和标题属性。而弹出框式的原生推送(Raw Notification )只能应用在程序开启时,容许实时更新界面WebOS (BlackBerry)的推送机制如下如所示:BBS配置数据库应川服务器 6 MDS/BES推送从整体上可以分为六步,按时间顺序从示意图中可以看到在BlackBerry应用平台上的娄 分别为:第一步:应用服务器向MDS/BES服务器发送推送请求f所发送的请求为HTTP格式的请 求。第二步:MDS/BES服务器查询相关配置数据库,确走应用服务器所发送的请求是否为合法的 请求。此外,MDS/BES服勢器还会根据资源情况确走是否接收该请求

7、。对于是否接收请求的 判断在下一节内容中也有详细讨论第三步:MDS/BES服务器向应用服务器返回消息,通知应用服务器是否接受该请求。返回消息以HTTP答复的方式返回给应用服务器第四步:MDS/BES服务器*機;推送到手持设备端第五步:手持设备端对数据进行处理后向MDS/BES服务器返回确认消息2r-w第六步:MDS/BES根据手持设备端返回的消息决走向应用服务器返回什么异步消息,这一步 并不是必然发生的,根据推送请求的不同有可能不发生。sprite-3:oiB3 .| 0Betty Reinhardt123ooabcdef456ghiI wmno789pqetuvwxyzBudget Revi

8、ew M eeting tn 15 minutes. Main BoardroomLee Miller Missed call at 1:23pJasonYeah, that was some funny stuff, you.Long Gone Valentin careless hearts黑莓的推送是最早的,最早应用在邮件上,而且黑莓的推送机制也是加密最好的,最安全的机 制。下面我们来详细的介绍一下android的推送机制:Android ( Google ):首先介绍一下google官方应用的push :1)如果你有新的Gmail邮件,手机可以马上收到邮件通知,这个中间可能有2 , 3

9、秒的延迟, 般感觉还是很及时的;2 )如果你的联系人和Google Contanct是关联的话,你用桌面浏览器访问Gmail,修改联系 人信息,很快新的联系人信息就会同步到你手机上。在Google I/O 2010介绍了 Android 导入的服务,C2DM)作为Android 的一部分已 经发布了。C2DM允许第三方开发者开发相关的应用来推送少呈数据消息到用户的手机上,其 机制如下图:Android Cloud to Device Messaging (C2DM)是一个用来帮助开发者从服勢器向 Android 应用程序发送数据的服勢。该服务提供了一个简单的、轻星级的机制,允许服务器可以通知移

10、 动应用程序直接与服务器进行通信,以便于从服勢器获取应用程序更新和用户数据。C2DM服 务负责处理诸如消息排队等事务并向运行于目标设备上的应用程序分发这些消息。启用C2DM的过程:1, 移动设备:必须运行android ,并且安装Market,至少有一个登录的google账号。2, 服务器:自己的服勢器3 , C2DM服务器:google的服务器授权机制:1, Sender ID :个google账号,用于标示开发者的身份,比如2 , Application ID :里面的pacakage name0 用于标示应用程序3 , Registration ID :当应用程序向C2DM服务器注册时,

11、C2DM服务器会返回这个ID ,当 应用程序获得这个ID之后,应该告诉自己的服务器,自己的服务器把这个ID存在数据库里 面,用于告诉C2DM服务器标示客户端。4 , Google User Account :要使用 C2DM 服务,必须有一个 google 账号。5 , Sender Auth Token :自己的服勢器与C2DM服务器通信的认证。应用程序发送Intent 附上自己的SenderlD和Appld ,就可以向C2DM服务器进 行注册,注册成功之后,可以收到REGISTRATION Intent,获得Registration ID ,这个 Registration ID是会被C2D

12、M改变的,所以这个REGISTRATION Intent可能会收到多次, 要记彳寻存储和发送给自己的服勢器通过对比研究发现C2DM机制存在以下缺点:1、C2DM内置于Android的系统上,无法兼容老的到系统;2、C2DM需要依赖于Google官方提供的C2DM服务器,由于国内的网络环境,这个服务经 常不可用,如果想要很好的使用,我们的App Server必须也在国外,这个恐怕不是每个开发 者都能够实现的;。除了 C2DM在实现Android消息推送机制的方案还有以下几种:1、轮询(polling ):应用程序应当阶段性的与服务器进行连接并查询是否有新的消息到达, 你必须自己实现与服务器之间的

13、通信,例如消息排队等。而且你还要考虑轮询的频率,如果太 慢可能导致某些消息的延迟,如果太快,则会大呈消耗网络带克和电池。2、长连接:这个方案可以解决由轮询带来的性能问题,但是还是会消耗手机的电池。Apple 的推送服勢之所以工作的很好,是因为每一台手机仅仅保持一个与服勢器之间的连接,事实上 C2DM也是这么工作的。不过这个方案也存在不足,就是我们很难在手机上实现一个可靠的服 务。Android操作系统允许在低内存情况下杀死系统服务,所以你的通知服务很可能被操作系 统Kill掉了。这种方法通过come (基于HTTP长连接的服勢器推技术)长连接也可以实现。详细可以 参照,但是这并不是最有的一种方

14、式,在Android下最有的方式应该采取XMPP协议推送Android信息:首先介绍一下XMPP基于可扩展标记语言(XML )的协议,它用于即时消息(IM )以及在线 探测。这个协议可能最终允许用户向因特网上的其他任何人发送即时消息。详细参考:官方的C2DM服务器底层也是采用XMPP协议进行的封装。是一个基于XMPP协议的java开源An droid push n otification实现。它包含了完整的客户端 和服勢器端。该服务器端基本是在另外一个开源工程基础上修改实现的。它的实现示意图如 下:androidpn客户端需要用到一个基于java的开源XMPP协议包,这个包同样也是基于 ope

15、nfire下的另外一个开源项目,不过我们不需要自己编译,可以直接把androidpn客户端 里面的拿来使用。客户端利用asmack中提供的XMPPConnection类与服务器建立持久连 接,并通过该连接进行用户注册和登录认证,同样也是通过这条连接,接收服务器发送的通 知。androidpn服勢器端也是java语言实现的,基于openfire开源工程,不过它的Web部分采 用的是spring框架,这一点与openfire是不同的。Androidpn服务器包含两个部分,一个是 侦听在5222端口上的XMPP服务,负责与客户端的XMPPConnection类进行通信,作用是 用户注册和身份认证,并发送推送通知消息。另外一部分是Web服务器,采用一个轻星级的 HTTP服务器,负责接收用户的Web请求。服务器架构如下:最上层包含四个组成部分,分别是 SessionManager, Auth Manager, PresenceManager 以及Notification Manager。SessionManager负责管理客户端与服勢器之间的会话,Auth Man

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号