2009-08-04 74 views
4

我们可以使用轮询来查找某些来源的更新,例如连接到Web服务器的客户端。 WCF以Duplex契约的方式提供了一个非常漂亮的功能,其中,我可以维护与客户端的连接,并随意在该连接上进行调用。 办公室里有人在讨论这两种解决方案的优点,我想获得关于何时使用每种策略的反馈。要轮询或不轮询(在Web服务上下文中)

回答

2

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

2

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

假设您有1,000,000名用户,您将在维护多次会话时遇到问题。

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

0

我觉得西拉钉了这一个,但我想说两件事。

  1. 我与Duplex 合同有问题。你必须连接所有 你的鸭连续关于 的回调通道...你必须 检查它,以确保它是开放的, 等IDesign.net的东西将是 最少量的管道代码 你必须包括。
  2. 如果它使你的解决方案 感(这仅仅是在某些 情况适当)时,MSMQ绑定允许 客户端以异步方式将数据发送到服务 (如双面), 但服务对于 消息不是“轮询”...当 通过一些 下面的管道进入队列时它会得到通知。

    这类势力的你转身的 通信(客户端成为 服务器,服务器将成为客户端),但 如果大多数通信 的是单向的,这将提供的好处很多 。另一个好处 这里显然是排队的 通信 - 服务器可以是 关闭,并且不会错过任何消息... 它会在线返回 时挑选它们。

想些什么。

+0

另外:如果您需要与MSMQ进行双向通信,则必须分别实施两个端点。该服务将有一个客户端和一个服务,客户端将拥有一个服务和一个客户端(这样可以发送和接收消息)。 – 2009-08-05 03:25:23