推送技术 Push Notification

1.BB,Nokia,Palm都前后支持了Push,目前流行的Push方式有三种。 html

(1)短信触发:2G时代长时间的数据链接会影响电话接入的可靠性,因此Pushmail用短信的方式触发。推过来一个看不到的短信,让系统去链接邮件服务器。 web

(2)长链接心跳查询:3G时代,语音和数据分离,手机长时间的保持网络链接成为可能。因而能够创建一个链接,设定必定时间间隔,让手机不断的检查服务器的邮件。 json

(3)长链接IMAP IDLE:网络进步的同时,邮件推送的协议也在不断改进。IMAP开始支持IDLE特性。让手机不须要总去访问服务器。手机的请求过来,邮件服务器能够把回复挂起,有新邮件近来时再发出。这个过程当中,客户端和服务器也是一直链接的。 安全

 

2.iPhone推送通知的工做机制能够简单的归纳为下图:Provider是指某个iPhone软件的Push服务器,APNS 是Apple Push Notification Service(Apple Push服务器)。 服务器

(1)、Provider: 用来向APNS发送消息 网络

(2)、APNS: Apple_Push_Notification_Service 苹果消息推送服务器 app

(3)、iphone:用来接受APNS下发下来的消息推送 iphone

(4)、Client App: 安装在iphone上面的程序 (用来接收iphone传递APNS下发的消息到制定的一个客户端 app) ide

 

iPhone在开启Push的时候,会链接 APNS创建一条TLS加密连接。每一台正常的iPhone都有一个独有的设备证书,而APNS也有一个服务器证书。二者创建的时候,会验证彼此的证书有效性。
TLS连接一旦创建,在没有数据的状况下,只须要每隔15分钟进行一次保活的握手,所以几乎不占流量。而一旦由于意外缘由致使连接中断,iPhone会不断从新尝试创建TLS连接,直到成功。 测试

 

http://www.cocoachina.com/iphonedev/sdk/2011/1124/3599.html

http://hi.baidu.com/nasa007/blog/item/369b15ca4b34318cc81768ef.html

http://slj.me/2010/02/iphone-push-notification/

http://marshal.easymorse.com/archives/3312

http://blog.csdn.net/linkai5696/archive/2011/04/12/6316929.aspx

http://www.cocoachina.com/newbie/basic/2010/0401/900.html

http://blog.csdn.net/sjzsp/article/details/6323070

 

3.苹果为软件开发者们提供了三种信息提醒方式:显示警告框,播放自定义声音,更新应用程序标志。

应用程序长时间后台运行,会过分消耗电能是使用推送通知的最大的原因。

苹果并不保证推送通知的到达及顺序。

APNS和iPhone手机间的消息使用json格式,而且每条消息最大为256字节。

iPhone收到推送请求后,执行一系列检查,若是客户端程序在运行,它会经过应用程序委托将消息发送到应用程序,若是没有运行,它会执行警告,显示文本,播放声音或更新标志。

推送提供商必须提供安全套接字层认证,和令牌,标识要通知的手机和应用程序。

APNS反馈服务列出未能接收到通知的设备。

在Guides\Local and Push Notification Programming Guide 中查有关推送通知的文档。

 

4.当前Push Mail技术概览 

(1)传统的sms push

 黑莓(Blackberry)手机可以在美国火起来,支持Push是一个主要缘由。运营商经过 相似短信的方式,将新邮件通知给手机,这就是传统的Push方式,咱们称之为SMS Push。在GSM中,32个时隙信道中有30个通话通路,而另外2个被预留用来传递管理和控制信令。而短信正是走的这个通道,所以收发短信和打电话并不 冲突,也很是灵活。可见,SMS Push须要运营商的支持,在中国,中国移动也发现了这个商机,他们天然不会免费提供这个服务,也不会提供通用的API接口给其余邮箱运营的公司(如网易、腾讯)使用,而是他们本身开发了139mail。固然,你若是须要Push,就须要按月缴纳一些费用。

      (2)ip push

      只有运营商能够提供Push,而他们又盯上了邮箱这个领域,其余邮箱运营的公司要想和移动竞争,彷佛已经输在了起跑线上,然而事情并不是如此。与传统稳重的 大国企相比,新兴IT公司的优点就是具备不断的创新精神和强大的开发团队。其实Push不必定非要经过SMS实现,用Internet也能够。经过网络,手机客户端能够发送一个HTTP请求到服务器,告知服务器客户端须要这个用户的新邮件通知,当服务器收到一封新邮件时,就会回复这个HTTP请求;客户端通知用户收到了新邮件,并同时再次与服务器创建链接,等待下一封信。有些人以为只有“SMS Push”才是真Push,IP Push是伪Push。他们为何会这么想呢?由于他们以为IP Push须要保持链接,浪费了流量、电量、网络资源。 那事实是这样吗?其实并不是如此。咱们首先思考这样一个问题,你打电话给你的朋友,为何基站在很短几秒钟以内就能够通知到对方的手机有一个来电呢?那是因 为其实基站时刻都在跟你的手机保持着链接。因此SMS path也须要“保持链接”,再进一步思考,其实只要可以保持和基站的链接,其实就已经能够保持网络链接了,而其实等待一个HTTP的响应 (reponse)或者说维持一个TCP链接,额外开销并不大。用“网易掌上邮”和尚邮push mail等IP Push的实测结果是,打开Push和关闭Push,电量并无明显消耗,一天消耗的流量大概是50-60KB,也就至关于打开一个不太复杂的web页面所产生的流量。

       (3)imap idle push

        IMAPIDLE 模式是 IMAP 协议的一项高级功能,在这种模式下,客端登陆链接服务器后并没有主动查询新邮件的动做,而是停留在 IDLE(空闲) 状态,当服务器接收到新邮件后通知客端,客端再开始查询新邮件的动做,此动做完成后,客端从新回到空闲状态。因此也能够算是一种push的方式。目前 gmail实现了这个功能。

       

IMAP IDLE 模式是 IMAP 协议的一项高级功能,在这种模式下,客端登陆链接服务器后并没有主动查询新邮件的动做,而是停留在 IDLE(空闲) 状态,当服务器接收到新邮件后通知客端,客端再开始查询新邮件的动做,此动做完成后,客端从新回到空闲状态。使用 IMAP IDLE 模式的好处是,服务器收到新邮件时客端立刻就会收到通知

不支持 IMAP IDLE 的客端或者服务器,检查新邮件是靠客端手动刷新或者按期查询(好比每5分钟),这种方式查询新邮件会有时间延迟,若是新邮件没有遇上上次查询,必须等到客端下次查询时才能收到通知

IMAP IDLE 和 Push email 仍是有区别的,Push email 是服务器主动把邮件推送到客端;而 IMAP IDLE 是客端主动登陆服务器并保持链接才能够,用电话做例子来讲,IMAP IDLE 就像是客端打电话到服务器后进入待机状态等待服务器回答,而 Push email 则是服务器直接打电话给客户端。

Gmail 目前并不支持 Push email,须要经过第三方支持(如 http://mobile.emoze.com/) 才能实现 Push email 的功能,这是由于 Gmail 在客端没有登陆的状况下不知道如何把邮件推送到你的手机;若是使用 IMAP IDLE 功能,服务器只会通知客端有新邮件,而下载新邮件的工做仍是客端完成的,而且这个过程当中客端必须一直保持与服务器的链接才能收到通知进而完成下载邮件的工 做,严格说这并非 Push。

Push Mail 必须和运营商合做。IMAP IDLE模式须要邮件客户端一直链接服务器。
这对于手机应用来讲,还不是问题,由于手机是按照流量收费,链接不产生流量。至于消耗的电池,有测试过,让手机5分钟联网一次和一直链接,消耗的电量是同样。甚至更少。


 4.cmwap为何不能实现IP Push?
    cmwap是中国移动提供的一种接入点。能够访问wap站点、收发短信和经过10.0.0.172代理接入Internet。就是说,使用cmwap接 入,你的网络访问是须要经过移动提供的代理完成。而这个代理设置了严格HTTP请求超时(1分钟左右),能够简单的理解为一个TCP链接在没有数据传输的 时候,最多只能维持一分钟。要想在cmwap下实现IP Push,就必须每分钟发起一个请求来保持网络链接。这个成本显然是很大的,会消耗比较大的流量和电量。所以,cmwap是很难作到IP Push的。


5.2195端口


6.Apple推送通知服务教程

   http://article.ityran.com/archives/194




邮件推送实现原理和方法浅析

相关文章
相关标签/搜索