首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

WCF 技術內幕(33):通道——通道形狀與 Session 機制

     編輯:關於.NET

通道形狀:對應訊息交換模式

通道形狀對應第 3 章訊息交換模式(MEP)。.NET 介面天然適合區分形狀。對應表:

MEP發送者形狀接收者形狀
資料報IOutputChannelIInputChannel
請求/回覆IRequestChannelIReplyChannel
雙工IDuplexChannelIDuplexChannel
P2PIDuplexChannelIDuplexChannel

資料報發送者僅能發送(Send),接收者僅能接收(Receive);請求/回覆雙方皆可收發;雙工雙方皆可自由收發,形狀相同。

Session:訊息關聯的邏輯邊界

WCF Session 為通道層級建構,用於關聯多個訊息。不同通道有不同關聯方式:TCP 依 Socket,WS-RM 依訊息標頭 ID。共同特徵:擁有識別碼供基礎設施模組關聯訊息。

Session 介面

public interface ISession { string Id { get; } }
public interface ISessionChannel<T> where T : ISession { T Session { get; } }

Session 通道形狀對應表

MEP發送者形狀接收者形狀
資料報IOutputSessionChannelIInputSessionChannel
請求/回覆IRequestSessionChannelIReplySessionChannel
雙工IDuplexSessionChannelIDuplexSessionChannel
P2PIDuplexSessionChannelIDuplexSessionChannel

IDuplexSessionChannel = IDuplexChannel + ISessionChannel<IDuplexSession>。形狀雖同為雙工,但 Session 變體實作 ISessionChannel<T>,為不同形狀。

備註:三大 MEP 速查

  • 資料報:啟動後不管,無保證送達。客戶端 IOutputChannel,服務端 IInputChannel
  • 請求/回覆:半雙工,RPC 風格。客戶端 IRequestChannel,服務端 IReplyChannel
  • 雙工:雙向自由收發,如電話。雙端皆 IDuplexChannel
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved