我正在使用Exchange Web服务(Exchange Server 2010)将用户的Outlook日历与我的应用程序同步。我实现了EWS推送通知,以便在外观用户创建,修改和删除事件时回调我的应用程序。我通过使用EWS订阅用户的电子邮件凭证来实现这一目标。
客户端应用程序应该在从服务器获得回调时向服务器发送OK响应。如果客户端应用程序在一段时间内没有OK响应,则特定订阅将自动取消订阅。
如果由于任何意外原因导致客户端无法访问一段时间,我只需订阅未订阅的用户,而不是订阅所有用户。
我现在的问题是如何从EWS获取未订阅的用户/或订阅ID?我在MSDN文档中找不到任何有用的信息。
任何人都知道吗?
MSDN参考 enter link description here
答案 0 :(得分:1)
我认为唯一的方法就是利用StatusEvent
(我称之为心跳)。订阅时,您可以设置一个参数来指示EWS向Push HTTP侦听器发送POST的频率。 (我使用3分钟 - YMMV。)因此,3分钟后(加上一点额外的确定),如果您没有收到EWS的消息,可以通过StatusEvent
或其他“真实”事件获取订阅,然后您应该重新订阅该用户。