经过几次阅读,包括...
- http://anthymecaillard.wordpress.com/2012/06/06/wcf-real-time-web-development-with-long-polling/
- WCF 服务器如何通知 WCF 客户端有关更改的信息?(比简单轮询更好的解决方案,例如 Comet 或长轮询)
...我想我已经准备好进行长轮询了。
从第二个链接,我的理解是异步模式允许我们:
- 在 WCF 服务器上接收请求
- 调用返回 IAsyncResult 的 BeginMyMethod
- 当接收到请求的线程“安全地休息”或被释放时,挂在某处的 IAsyncResult 上?- 不消耗任何额外资源
- 发生相关业务逻辑事件时“将 IAsyncResult 退出”
- 使用 IAsyncResult 调用 EndMyMethod,在此期间我们完成响应(即,将数据写回客户端)
我的假设听起来正确吗?我还假设这是由于上述机制保持零线程等待事件而具有极大的可扩展性。
这是目前使用 .NET 4.5 实现 WCF 长轮询的最佳方式吗?