我有以下情形:WCF架構問題
WCF主機服務器< - 網絡連接 - > WCF便攜式客戶端< - 連接 - > WCF客戶端2
我也有一個在WCF HOST SERVER所在的服務器上,WCF HOST CLIENT具有UI。該客戶端在主機服務器上調用服務。
我連接了WCF主機客戶端以列出連接的WCF LAPTOP客戶端; 我已經使用雙工連接,因此如果我雙擊其中一臺連接的筆記本電腦客戶端,雙工通道將用於與選定的WCF LAPTOP客戶端進行通信。
但是,我不需要一個字符串消息,而是需要將一個大的數據文件傳輸回WCF LAPTOP客戶端。我無法使用回撥通道進行流式傳輸,因爲雙工不允許流式傳輸。
注:我必須使用NetTcpBinding爲此要求。
所有WCF LAPTOP客戶端使用相同的IP和端口。
所以問題是如何在WCF HOST CLIENT UI上選擇連接的筆記本電腦,並將流對象發送回選定的laptlop?由於回調通道知道筆記本電腦的位置,我可以通過某種方式使用該信息爲該特定筆記本電腦打開一個新的wcf連接(或新的套接字連接)?我使用GUID在WCF HOST CLIENT上註冊每檯筆記本電腦,並使用它來確定哪個WCF LAPTOP CLIENT發送字符串消息。
我試過了什麼: 我曾嘗試在WCF LAPTOP客戶端使用回調消息從主機服務器調用不同的服務;這工作並返回從HOST SERVER到特定的LAPTOP客戶端的字符串消息,但我無法發回字節數據,因爲我得到了合同不匹配錯誤。
我實際上必須做的是將大文件從服務器發送到筆記本電腦,然後將該文件轉發給WCF CLIENT 2,該WCF CLIENT 2只連接到筆記本電腦,而不連接到網絡。 WCF CLIENT 2實際上是一個XP上的小盒子。除非我知道將文件發送到哪臺筆記本電腦,否則所有筆記本電腦都會收到該筆記本電腦,而我只需要選定筆記本電腦即可接收該文件,然後將其轉發至其連接的盒子。我正在使用套接字連接在筆記本電腦和盒子之間進行轉發。
任何見識或幫助,將不勝感激。