轮询或不轮询(在 Web 服务上下文中)
-
22-07-2019 - |
题
我们可以使用轮询来查找来自某些来源的更新,例如连接到网络服务器的客户端。WCF 以 Duplex 契约的方式提供了一个很棒的功能,在这种功能中,我可以维护与客户端的连接,并随意对该连接进行调用。办公室里的一些人正在讨论这两种解决方案的优点,我想获得有关何时最好使用每种策略的反馈。
解决方案
我会使用基于事件的机制,而不是轮询的。在WCF,您可以按照发布 - 订阅框架,朱瓦尔·洛提供了在他的网站很容易地做到这一点,的 IDesign.net 。
其他提示
一定程度上取决于你有多少用户。
假设你有百万用户,你将有问题的维护,很多会话。
但是,如果您的系统可以以1000响应轮询请求第二然后每个客户端可以轮询每1000秒。
我认为设拉子(Shiraz)做到了这一点,但我还想说两件事。
- 我在双工合同方面遇到了麻烦。关于回调频道,您必须连续将所有的鸭子列入...你必须 检查它以确保它是打开的, 等。IDesign.net 的东西是 最低限度的管道代码 你必须包括。
如果它对你的解决方案有意义 (这仅适用于某些 情况),MSMQ 绑定允许 用于向服务发送数据的客户端 以异步方式(如双工), 但该服务不是“轮询” 消息。。。当出现以下情况时,它会收到通知 一个人通过一些进入队列 盖下管道。
这迫使你把 围绕(客户端成为 服务器,服务器成为客户端),但 如果大部分通信 是单向的,这将提供很多 的好处。另一个优点 这里显然是排队的 通信 - 服务器可以是 下来,不要错过任何消息......当它回来时,它会捡起他们 在线。
值得思考的事情。
不隶属于 StackOverflow