WSDualHttpBinding和NetHttpBinding之间的区别

时间:2018-09-10 22:13:22

标签: c# .net web-services wcf

我正在编写一组将相互通信的WCF服务。我希望能够在服务器之间建立双向连接。但是,在某些时候,不同类型的客户端(.NET或Javascript)应该能够与这些服务进行通信。

我当前在WsDualHttpBinding中使用回调,并且至少在基本意义上,它似乎可以解决问题。服务可以相互发送基本消息。我担心的是打开多个连接,因为带宽将来可能会成为问题。

我担心NetHttpBinding是一个更好用的工具。 我想知道使用NetHttpBinding与WSDualHttpBinding相比有哪些优点或缺点。

2 个答案:

答案 0 :(得分:1)

WSDualHttpBinding具有更广泛的范围,因为它支持HTTP协议。 但是,由于NetHttpBinding在网络中的nettcp上可以工作,因此速度要快一些。

答案 1 :(得分:0)

WSDualHttpBinding 的创建是有原因的。 WCF为服务“回调”提供了支持-客户端上的方法,在服务执行完成时会得到通知。不幸的是,HTTP是一种单向通道,它不允许回调(相反,TCP绑定是允许的,因为TCP是全双工通道)。为了避免HTTP的单向性,发明了DualHttpBinding-两个同时打开的HTTP连接-一个用于服务请求-一个用于回调。

NetHttpBinding 是为使用HTTP或WebSocket服务而设计的绑定,默认情况下使用二进制编码。 NetHttpBinding将检测它是否与请求-应答协定或双工协定一起使用,并更改其行为以匹配-它将对请求和应答使用HTTP,对双工使用WebSocket。

相关问题