2013-02-07 33 views
0

當服務正在與雙工在WCF綁定,可以在操作中做到這一點:GetCallbackChannel()如何在雙工wcf通道上工作?

OperationContext.Current.GetCallbackChannel<IClientReceiver>() 

去調用者的參考。這是什麼參考?我的意思是,它看起來像是在做一些voo-doo的魔法。在幕後發生了什麼事情,允許服務向客戶端發回消息?

這對TCP綁定與雙工http綁定有什麼不同?因爲我知道TCP可以本地回撥給客戶端,但是http不能這樣,所以它必須在服務器端創建第二個通道來調用客戶端。

回答

2

WSDualHttpBinding實際上有兩個HTTP連接:一個從客戶端到服務器,一個從服務器到客戶端。 GetCallbackChannel<T>將返回一個對通道的引用,該通道知道如何向客戶端發送消息,正如您所指出的,它依賴於底層傳輸。

+0

謝謝carlosfigueira。如果TCP綁定沒有創建像HTTP那樣的第二個通道,它會如何回調?你知道嗎? – Trevor

+0

TCP已經是一個雙向通道,所以不需要額外的通道。 TCP只是全雙工原始套接字之上的一個思維層。 – carlosfigueira