Rob*_*ehe 5 architecture wcf web-services compact-framework
虽然可以轮询Web服务,但是除了使用Exchange Server邮件传输之外,您是否知道将更改推送到移动客户端的另一种方法?
正如 Mark Seemann 所言:当我在 Microsoft Dynamics Mobile 团队时,我曾经为 .NET CF 做过一个客户端通知系统的 POC。
当时,我没有找到任何可以做到这一点的开箱即用的解决方案,而且我不想依赖 Exchange Server 连接,因为目标用户没有 AD 帐户,而且大多数人肯定也没有。不要使用交换服务器。所以我现在的处境和你一样。我开始寻找可能的解决方案......
我意识到服务器无法连接到客户端,因为它的 IP 地址不断变化(从 3G 变为 WiFi、失去连接等)。客户端必须连接到服务器。此外,我发现大多数网络允许 HTTP 连接,但并不总是允许通过自定义端口进行自定义 TCP 连接。
我使用“Comet”执行从客户端 (.NET CF) 到服务器 (IIS) 的长期 HTTP 请求,并使用此连接将通知推送到客户端。如果客户端在发出通知之前超时,它只会发出新的请求。
在服务器端,我使用了 AsyncHttpHandler 和等待线程的组合,每秒检查发送给连接的客户端的消息。使用 AsyncHttpHandler 很重要,否则您将阻止 IIS 服务器。
POC 运行良好,并被证明是一个可靠的解决方案。这样做有一些缺点:如果你不小心,你会很快耗尽电池电量。
不幸的是,涉及的代码行太多,我无法在此处发布代码,但如果您愿意,非常欢迎与我联系,我将通过电子邮件将我的 POC 发送给您。