4

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

4

3 回答 3

2

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

于 2009-08-04T18:35:10.097 回答
2

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

假设您有 1,000,000 个用户,您将无法维护这么多会话。

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

于 2009-08-04T18:53:42.963 回答
0

我认为设拉子做到了这一点,但我还想说两件事。

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

    这种强制你改变通信(客户端变成服务器,服务器变成客户端),但是如果大部分通信是单向的,这将提供很多好处。这里的另一个优势显然是排队的通信 - 服务器可以关闭并且不会错过任何消息......当它恢复在线时它会捡起它们。

需要考虑的事情。

于 2009-08-05T03:23:24.477 回答