2010-04-26 148 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可能是你最好的選擇。輪詢可能是最壞的原因已經指出 - 每個民意調查佔用網絡資源等