我正在使用 EWS Java 将应用程序与 Exchange 集成。是的,我知道,它没有得到官方支持。这一切都非常简单,我在交换服务器上设置了流式通知。但是,我遇到了一些令人头疼的问题。
首先,似乎每个事件(或一批事件)都被发送了两次。例如,如果我正在查看已修改事件的日历并创建新约会或修改约会,我将收到两个相同的通知,每个通知都有一个 ItemEvent 和一个 FolderEvent。它们绝对是一个接一个地进入的不同对象,两个事件之间的差异为零。每个对象在任何相关字段中都与前一个对象具有相同的值。唯一的区别似乎是内存地址。
其次,我希望让通知更细粒度。我想查看日历项何时被修改,而不是何时创建日历项。看来我只能整体观看日历文件夹,并且已修改包含新项目。有没有办法让它更精确?
编辑:实际上,我发现这似乎只发生在日历文件夹中创建的会议上,并且只发生在其他与会者的会议上。两个 NotificationEventArgs,每个都有一个 FolderEvent 和一个 ItemEvent。经过进一步检查,我最近发现一个 ItemEvent 是 Created 一个是 Modified,这对我来说并不奇怪,现在我知道 Exchange 倾向于如何处理 Appointments。这个想法是监视创建的和修改的项目,尽管我认为它可以被分解为两个流订阅,或者,鉴于行为,设置为仅修改,因为无论如何都会捕获“新”约会。
无论如何,这是通过定期 SyncFolder 处理的(在提出这个要求和最终设计之间发生了很大变化),最终效果很好。