我有一个关于推送电子邮件的整体设计的问题,特别是Exchange ActiveSync采用的方法。
据我了解,有两种基本方法可以使用以下架构获取推送电子邮件
Device <---> Push Email Server <---> Actual Email server
- 在推送电子邮件服务器和设备之间保持恒定的套接字连接。推送电子邮件服务器将通过连接通知设备。
- 相关技术 - IMAP 空闲
- 无需短信网关
- 推送电子邮件服务器将发送一条消息(wap push,短信等),要求设备下载新电子邮件。
- 相关技术 - 欧玛-ENM
- 推送电子邮件服务器上需要短信网关
考虑到这一点,Exchange Activesync 实际上提供什么类型的推送电子邮件服务?
(AFAIK,来自Emoze/Synchronica的白标推送解决方案使用第一种方法 - 通过IMAP-IDLE之类的东西进行持续连接)。
Exchange ActiveSync 使用直推技术。客户端(电话等)与Exchange服务器同步,然后发出一个运行非常长时间的HTTP POST请求(称为"PING",但它不是ICMP ping或类似的东西)。当客户端发出请求时,它们指定它应该运行多长时间(通常大约是几分钟)。
该 HTTP POST 请求将闲置在 Exchange 服务器端,直到邮箱发生更改或客户端请求的时间段刚刚过去而没有发生任何感兴趣的事情。
在前者的情况下 - 邮箱中的某些内容发生了变化 - POST 调用的返回值向客户端指示它需要与邮箱重新同步以下拉最新更改。
在后者的情况下 - 没有任何变化 - 返回值指定了这一点,客户端只是将另一个长时间运行的 PING 重新发送到服务器,再次重复整个过程。
所以这是你的#1,真的。有关详细信息,此Microsoft链接将更详细地介绍。
我认为Exchange ActiveSync提供了类似于IMAP-IDLE的东西,见下文...
http://technet.microsoft.com/en-us/library/aa997252.aspx
如果您得出不同的结论,请发布。谢谢!