我目前正在開發服務,其中客戶端通過發送帶有消息的xml文件與服務器進行通信。爲了提高消息傳遞的可靠性(客戶端將使用低質量的有限頻帶交換移動互聯網),我將這些消息分成64或128 Kb大小的小部分,並在BasicHttp綁定中以「流式傳輸」方式發送。WCF:WS-Dual綁定或basichttp綁定到大塊流文件
現在,我有一個問題: 服務器應該報告客戶端,如果他成功地獲得了一塊與否,所以經過FE 5塊未能傳遞,傳遞過程將被取消並推遲稍後嘗試,並跟蹤哪些塊被接收,哪些不是。
我在考慮使用回調機制來傳遞客戶端,因此服務器會在它的[OperationContract]中調用回調方法ChunkReceived,當它將塊保存到服務器端的文件中時,但是,如果我是錯誤,但回調僅適用於WS Dual http綁定,並且在basichttp綁定中不受支持。但流式傳輸在WS Dual綁定中不受支持。
因此,它是好的,我切換到WS雙結合,並使用傳輸=「緩衝」(考慮塊大小是相對較小) - 將不轉讓疼可靠性?或者,也許我能以某種方式與客戶端基本的HTTP綁定溝通,也許通過返回某種響應消息,即
[OperationContract]
ServerResponse SendChunk (Chunk chunk);
其中ServerResponse將舉行一些枚舉或布爾標誌來告訴客戶,如果SendChunk操作就可以了。但是,我將不得不在客戶端和服務器端保留某種類型的數組,以跟蹤所有的塊狀態。我只是不確定在那裏使用什麼樣的最佳模式。任何建議將不勝感激。
謝謝你的算法,但如何結合的問題/轉一部分? – 2012-08-10 02:40:32