一、什么是Push Notification
Push 这一概念最早是出现于 PushMail 中,指的是利用推送技术,将电子邮件直接传送到移动终端。简单的说,就是系统直接将电子邮箱中刚刚收到的邮件即时发送到用户手中,不像传统移动邮件系统那样必须依赖移动终端定期接/收邮件或用户主动检查邮箱,所以客户终端上时刻都能够与所指定的信箱维持同步的资料。
当你有新邮件时,服务器会在第一时间将这个消息“推”给你。相比传统的定时收信,Push的好处是可以让你更快地收到邮件。比如用foxmail客户端,设置了5分钟自动收信,当一封信在一个随机的时间发出之后,需要平均等待2.5分钟才可以得到通知,而如果服务器可以Push给你,就只需等待一个网络延时。而遗憾的是,在广泛使用的pop3或imap协议中,并没有考虑到Push机制,因此Push功能需要额外的开发和协议规定。(via 百度百科)
如果推而广之的说,不考虑电力以及流量的因素的话,当一个延时足够小的Pull(比如1分钟以内),对于用户的感受来说是和Push没有太多不同的,所以以下也将一并讨论,称之为广义的Push或者称之为伪Push。
二、为什么需要 Push Notification
Push Notification是iPhone OS中特有的概念,为了讨论方便,就暂时借用一下这个概念啦。 需要使用 Push ,很大的一个方面的意义在于很多人使用电子邮箱作为个人信息包括各种网上社会化服务的信息总管;使用Push的另一个原因,就是希望将所有的信息都集中到电子邮箱中进行集中化处理。(如果可以不集中到电子邮箱也能及时得到通知当然是不集中到邮箱的好)
可以通过邮件订阅RSS/Twitter Reply/收发 Twitter等,也能将IM信息第一时间转发到邮箱(BeeJiveIM 提供),推荐几个服务。
RSS推到邮箱 http://www.feedmyinbox.com/
Twitter Reply推到邮箱 http://www.twply.com/ 或者 http://replynotifier.com/
三、各个系统实现 Push 的方式
- BlackBerry OS
因为传统意义上的 PushMail 就生于斯嘛,所以从某种程度上来说,黑莓的 Push 是最为根正苗红的。 黑莓的 Push 是基于运营商以及BES/BIS的,所以在流量、电力以及速度方面都有相当的优势,只是目前在中国的定价还是相当高昂非普通用户可以接受(移动基本BES套餐50M流量是398元) - iPhone OS
后起之秀 iPhone OS 在OS3 SDK 推出之时,也提供了 Push Notification 作为 iPhone 不能提供后台多任务的一个替代,之前网上也有好几篇关于 Push Notification 的文章,我就不多分析了,流程如下图,使用TLS/SSL 保证连接的安全性。
iPhone的Push(推送通知)功能原理浅析
再论iPhone Push Notification:腰身柔软易推倒?
偷窥iPhone Push Notification的幕后
- Android
Android 系统内置的 GMail 是提供 Push 的,实现是通过 IMAP Idle 方式;内置的GTalk 后台服务也能及时送到最新聊天信息;以上两者皆是系统内置的,不过额外的第三方程序如果需要提供"Push",就需要在后台多添加一个进程,对于系统造成负担,毕竟手持终端还有电力、流量等桌面终端无需考虑的问题存在,所以一般除了 eMail 第三方程序Push并不是很好用吧(个人意见,轻拍) - Symbian/Windows Mobile
一般使用 Exchange(公司邮箱或者Google Sync)来Push,Nokia也有提供 Nokia Messaging 这一专有协议的需要通过Nokia 服务器的PushMail,然后还有诸如emoze/尚邮(没有使用过)这样的第三方PushMail,第三方PushMail存在的问题就是安全性不足,存在隐私泄露等问题,不过个人一般不必太过担心。 - Others
可以使用Notify.me 或者inezha.com 订阅配合 IM 聊天软件进行伪"Push"。其实我觉得这种方式还是挺不错的,只是延时有两次,一次是Feed更新的延时,一次是抓取Feed之后通过IM机器人推送的延时。不过由于其普适性,以及没有太多系统要求,仍然是一种很方便的选择。 这里推荐一下
之前也有谈过 Push和Pull 的文章,有兴趣也可以看一下。
9 条评论了已经
Trackbacks/Pingbacks
发表评论
字体为 粗体 是必填项目,邮箱地址 永远不会 被公布。
允许部分 HTML 代码:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
URLs(网站链接)必须完整有效 (比如: http://coolxll.me),所有标签都必须完整的关闭。
超出部分系统将会自动分段及换行。
请保证评论内容是与日志或 Blog 内容相关的,灌水、攻击性或不恰当的评论 可能 会被编辑或删除。













我个人觉得 twitter 这种没必要提醒,我必要的时候 yatca 手动刷一下,而且 Twidroid 这种后台是占资源的,yatca 几乎不会觉得。
Gmail/Gtalk 依然是 Android 最爽,这个没办法的。
有了这些以后,iPhone 的 push 不吸引我
BIS 虽然不等了,但说不定哪天就有了
[回复]
coolxll
回复:
五月 1st, 2010 at 12:32 下午
@Sunny, reply 有提醒还是蛮方便的,就不用开客户端了,发推一样用 IM 解决了。
GTalk 倒是没觉得 Android 有啥特别吧
GMail 加星标 标签倒是的确别的比不上,除非用网页版。
[回复]
IMAP也蛮快了,在Opera浏览器里设置的IMAP收Gmail邮件,基本和Gtalk的邮件提醒同时到达
[回复]
还从来没玩过这么高级的东西
[回复]
想问问兰州,提供APNS的服务器是由Apple公司提供的吗?按照文章的意思,这服务器只在美国喽?那举个例子,我使用QQ的推送功能,一旦我的好友给我发了一条信息,那这条信息就会由腾讯的服务器发往APNS服务器再转而发到我的iPhone上,是这样吗?
如果是这样,问题就来了:
1.一条信息就必须远跨中美两国的服务器,那对于信息密度非常大的即时聊天来说,延迟就不是一点两点啊
2.好友发给我的信息要经过APNS服务器,那岂不是聊天内容有可能被Apple公司破解?
3.APNS服务器的负担该有多大啊?Apple为什么不把APNS服务器的维护放权给ISP呢?
请兰州解答一下我的问题,多谢了!另外想跟你交个朋友,snakeninny@yahoo.com.cn
[回复]
coolxll
回复:
十一月 29th, 2010 at 10:05 下午
@大名狗剩, 按照顺序回答一下你的几个问题吧。
1.延迟很小,几乎可以忽略,因为服务器端与客户端保持长连接,使用类似于xmpp的协议进行通信,你可以理解为类似于Google Talk,你使用Google Talk的时候,感觉到延时了吗?
2.推送的内容,Apple Inc. 从理论上都是可以获知的,端到端的传输采用了TLS加密,不过一般Push不会用于特别机密的信息的传输。不然,建议还是使用BlackBerry Enterprise Service 更为靠谱。
3.因为便于控制,也便于管理,APNS主要的工作应该是类似于转发,负担应该不大,进行数据采集的部分在第三方,这部分倒是需要一定的处理能力,例如获取Twitter Mentions等
[回复]
大名狗剩
回复:
十一月 29th, 2010 at 10:15 下午
@coolxll,
谢谢解答,了解了!
[回复]
coolxll
回复:
十一月 29th, 2010 at 10:16 下午
@大名狗剩, 不客气,^_^
[回复]