轮询或不轮询(在Web服务上下文中)

时间:2009-08-04 15:12:27

标签: wcf web-services polling

我们可以使用轮询来查找某些来源的更新,例如,连接到网络服务器的客户端。 WCF以双工合同的方式提供了一个漂亮的功能,其中,我可以维护与客户端的连接,并随意在该连接上进行调用。 办公室里的一些人正在讨论两种解决方案的优点,我想得到关于何时最好地使用每种策略的反馈。

3 个答案:

答案 0 :(得分:2)

我会使用基于事件的机制而不是轮询。在WCF中,您可以通过遵循Juval Lowy在其网站IDesign.net上提供的Publish-Subscribe框架轻松完成此操作。

答案 1 :(得分:2)

部分取决于您拥有多少用户。

假设你有1,000,000名用户,那么在维持这么多会话时你会遇到问题。

但是如果你的系统可以每秒响应1000个轮询请求,那么每个客户端可以每1000秒轮询一次。

答案 2 :(得分:0)

我认为设拉子钉了这个,但我还想说两件事。

  1. 我在使用Duplex时遇到了麻烦 合同。你必须拥有所有 关于你的鸭子连续 回调频道......你必须这样做 检查它以确保它是打开的, 等IDesign.net的东西 最少量的管道代码 你必须包括。
  2. 如果您的解决方案有意义 (这只适用于某些情况 情况),MSMQ绑定允许 客户端将数据发送到服务 以异步方式(如双工), 但该服务不是“轮询”的 消息......它会在什么时候得到通知 一个人进入队列 封闭的管道。

    这种迫使你转过身来 沟通(客户变成 服务器,服务器成为客户端),但是 如果是大部分的沟通 是单向的,这会提供很多 的好处。另一个好处 这显然是排队的 通信 - 服务器可以 下来,不要错过任何消息...... 当它回来时它会选择它们 在线。

  3. 要考虑的事情。