第二章 單步操作

當一個客戶端需要向一個服務端發送消息但是不接受返回消息時,但不消息交換模式很有用。使用這個模式,客戶端只需要消息成功傳遞的確認;它不需要服務端返回一個精確的消息。有時單步模式被錯誤的稱作"發後不理"。在實際應用中,它是"發送和理解"因爲調用者接收到一個消息成功提交到通信信道的確認。

   WCF支持在服務操作層次的單向消息交換模式。服務操作可以被標記爲單向而且基礎結構將會使那種情況更完善。當一個客戶端調用服務端的一個單項方法時,或者更準確的說,當一個客戶端發送一條消息給一個操作被標記爲單向的服務終結點時,控制端在服務操作完成之前就返回給調用方。單向操作通過在屬性[OperationContract]上使用IsOneWay=true修飾詞語來確定的。列表2.5暴露一個有兩個服務操作的服務契約。兩者的實現方式是相同的,但是一個表標記成單向操作。當一個客戶端應用程序調用DoBigAnalysisFast,客戶端代理調用立即返回而且不會等待10秒即便服務正在執行Thread.Sleep語句。當客戶端調用DoBigAnalysisSlow時,客戶端代理調用阻塞10秒鐘當服務正在執行Thread.Sleep語句時。
   需要注意的是與其他消息形式相比,代碼並不知道傳輸消息的綁定或者通信協議。僅僅因爲netTcpBinding支持雙向通信而且basicHttpBinding支持請求-回覆模式,兩者都可以用來支持單向模式。

LISTING 2.5 單向操作契約


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章