2010-04-26 146 views
9

到目前为止,除了可以从双通道获得即时通知之外,没有人可以真正提供在客户端轮询系统上使用双通道的任何好处。其他的观点都表示,如果你不需要立即注意到双重约束提供了负面价值 - 任何人都不同意这一点?WCF中WSDualHttpBinding的优点是什么?

使用WSDualHttpBinding与IIS托管服务与调用WCF服务的客户端轮询有多大的好处,假设后者中的服务缓存了有问题的数据?

此场景将用于通知类型的服务,其中当发生事件时客户端需要由服务通知。

具体来说,WSDualHttpBinding会提供什么优势来胜过轮询? 即:较少的网络流量,更快的设计,更容易维护,更多的控制?

据我所知,WSDualHttpBinding比客户端轮询的可扩展性低,为什么要使用它呢?编辑:正如马特提供的,时间关键可能是双工绑定的一个原因。

这里是我到目前为止有:

WSDualHttpBinding

广告:可以得到即时响应W/O等待轮询定时器

DIS:比WsHttpBinding的

DIS少可扩展性:防火墙更少

dis:比WSHttpBinding更慢

我会根据评论添加到此,请让我知道,如果我说错了什么。

感谢您输入:-)

回答

8

有丰富的this SO thread信息。基本上,轮询的缺点是您的客户端只与最后一次轮询一样保持最新,因此对于时间关键信息,您需要增加轮询频率。每次轮询都会占用网络资源并在客户端上创建开销。像长时间轮询和WSDualHttpBinding这样的解决方案是解决这个问题的方法。 WSDualHttpBinding的缺点是客户端必须将端点暴露给服务器(这会在防火墙环境中造成问题)。 BOSH/XMPP或其他形式的长轮询是另一种选择。

+0

谢谢,这似乎是一个优势wshttpbinding :-) – schmoopy 2010-04-26 17:18:39

4

WSDualHttpBinding是由于某种原因而创建的。 WCF提供了对服务“回调”的支持 - 客户端上的方法在服务执行完成时得到通知。不幸的是,HTTP是单向信道,不允许回传(相比之下,由于TCP是全双工信道,TCPBinding允许)。 为了解决HTTP的单向性问题,DualHttpBinding被发明出来 - 两个同时打开的HTTP连接 - 一个用于服务请求 - 另一个用于回调。这不是一个可伸缩性的问题 - 而是需要。如果你想使用回调(并且回调很好,特别是如果你的服务将是一个耗时(长时间运行)服务),WSDualHttpBinding可能是你最好的选择。轮询可能是最坏的原因已经指出 - 每个民意调查占用网络资源等