我正在使用EWS api在平板电脑上开发一个androd应用程序来连接office365。该app轮询到office365服务器以请求日历信息。但是,有时候当应用程序安装在15个设备上并且每个设备以5秒的间隔进行轮询时,它受到限制策略的限制。服务器返回消息,说明它正忙。
EWS提供流式订阅和推送订阅。流式订阅不是我想要的,因为它只允许10个连接同时工作(根据。https://msdn.microsoft.com/EN-US/library/office/dn458789(v=exchg.150).aspx) 所以推送通知是一个更好的选择。
当我尝试使用推送通知时,我们的应用程序可以在office365上订阅日历。服务器回复订阅已成功完成。 然后,该应用程序创建了一个套接字并从office365侦听数据。但是,当我们在日历上创建,修改事件时,没有数据从office365推送到我们的应用程序。
我们在本地网络中尝试使用Exchange2010 Sp2的方案,它运行得很好。所以,我们假设这是因为网络问题或网络政策。我们尝试重新配置我们的路由器以允许端口转发以及关闭我们的防火墙。它仍然无效。
所以问题很简单如何正确实施推送通知接收器" office365"。
答案 0 :(得分:3)
PUSH通知不太可能从O365进入。即使您确实将防火墙端口打开到您建立的侦听端口,仍然存在您向O365提供通知的URL的可路由性问题。例如。如果你给它" {{3}}"它可能无法解决" myserver"除非您有公共DNS条目。即便如此,将端口打开网络可能也不是一个好主意 - 至少在我的公司里,IT人员永远不会让我这么做!
关于流式订阅的10个连接限制,可以使用模拟来解决。事实上,对于O365来说,模仿几乎是强制性的,IMO,以避免O365作为SaaS必须做的限制。这需要使用PowerShell进行一些设置,以涵盖您需要订阅的所有MB,但这只是一次性的事情。
也就是说,流媒体通知管理比旧PUSH更复杂。特别是对于O365,您必须了解通过自动发现获得的分组信息,并在每个连接上仅使用同一组中的MB进行订阅。此外,每个订阅有200个最大MB,这可能是也可能不是您的一个因素。您在上面提到的文章中详细介绍了很多内容。
HTH&祝你好运!