注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

gmd20的个人空间

// 编程和生活

 
 
 

日志

 
 

手机收邮件的实时性保证原理  

2011-01-25 20:13:57|  分类: 程序设计 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 在CSDN新闻里面看到某个“大侠“说到“黑莓手机 的上面心跳保活技术”就搜了一下,以比较一下前面看到的“http 服务器推”方法有什么不同.

 

黑莓有 pushmail
微软的Exchange Server  有Direct Push

微软的文档就是好,很有大家风范阿! 这里有个技术实现原理的文档。
Understanding Direct Push  http://technet.microsoft.com/en-us/library/aa997252.aspx

大概就是手机向服务器发起一个长连接的https连接,这样服务器就可以在有新邮件的时候把通知push过来,手机再启动客户端的pull动作把邮件下载下来就是了。关键就是这个能够长时间保持的激活的https连接的维持了。因为手机这种移动设备网络是不大好的。Direct Push采用的是一种可变时间间隔的心跳保持机制。 最初的长连接是12分钟的保持连接,如果12分钟里面服务器都因为超时没有返回了,客户端就把这个事件调小一点,改为8分钟一次的心跳检测。如果不行探测频率再调高一些,如果这12分钟事件到了,服务器能够在12分钟计时时间到的时候正常回复一个HTTP 200 OK 过来,那么说明网络正常,心跳检测相应的又调大一些,又从8分钟一次恢复到12分钟啦什么的。这种级进式的心跳超时时间,其实自己也可以想的出来了。详细的可以去看一下原文,写的很清楚的。
    总的说来关键就是这个https连接能够长时间的保持,这个手机的支持,服务器端也要支持。根据现在的实现办法看来,估计现在手机设备 和服务器采用正常的tcp连接通讯应该也是可以的了,服务器端可以直接发信息发送那个给指定的手机的了,只是这个手机环境下的网络更不稳定,更容易需要重建连接而已。这个direct push的心跳机制也是很有参考价值的。不过那些实时游戏啦,可能实时性要求更高一些,12分钟的超时应该是不行的。至于为什么那么多实现都选用的http而不是普通的tcp来做的,我觉得可能跟http在手机上的支持更好有关系吧,另外http本来就不考虑你这些稳定连接的,在任何情况下都可以用的也是一个考虑吧 ??
     黑莓有 pushmail 在网上找不大什么技术原理的说明。好像这个产生很长时间了,估计技术原理应该和微软的这些差不多,值哈微软的技术还是挺强的吧,没理由实现差的太远。
     国内的什么“尚邮”,好像各个手机平台平台都有移动客户端,好像也支持别人的比如gmail这些的。这样的话他不能直接控制真正的手机服务器端,那个不是直接做到服务 push这种动作的。只能是说他在他自己的服务器上不停的用imap协议从gmail服务器pull下来,然后在从自己的服务器push到你的手机上。中间的这个“从gmail服务器pull”过来过程估计如果用户数量比较大的时候实时行能够保证吗?如果imap/pop等长时间保持激活,频繁的探测,估计gmail那里也有压力阿,gmail那端让你这样随便乱搞? 不知道他们正在的实现是怎么做的。最好是像微软这种,自己搞的Exchange Server 邮件服务器,自己在服务端有完全的控制权。
     像移动139邮箱那些,好像听说是有新邮件的时候,直接给手机发送一条短信,然后手机受到短信在从pull模式到服务器上去取邮件。这种方法估计也只是财大气粗的运营商才玩的起了。

  评论这张
 
阅读(717)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017