通道 (Windows Web Services)

通道會封裝兩個或多個合作物件之間的通訊內容,並用來傳送和接收訊息。

在用戶端上,使用 WsCreateChannel 建立通道。 在伺服器上,使用 WsCreateChannelForListener 來建立用戶端可以使用接 聽程式接受的通道。

當您建立通道時,您可以指定下列資訊,以決定要使用的通道和線路通訊協定的本機行為。

使用通道之前,您必須呼叫 WsOpenChannel 函式並指定通道和 端點位址,以及其他選擇性資訊來開啟通道。

如需通道狀態轉換的資訊,請參閱 通道狀態 主題。

如需通道的詳細資訊,請參閱 通道層概觀 主題。

下列 API 元素會與通道搭配使用。

回呼 Description
WS_ABANDON_MESSAGE_CALLBACK 處理具有自訂通道系結之通道的 WsAbandonMessage 呼叫。
WS_ABORT_CHANNEL_CALLBACK 使用自訂通道系結處理通道的 WsAbortChannel 呼叫。
WS_CLOSE_CHANNEL_CALLBACK 使用自訂通道系結處理通道的 WsCloseChannel 呼叫。
WS_CREATE_CHANNEL_CALLBACK 使用自訂通道系結處理通道的 WsCloseChannel 呼叫。
WS_CREATE_DECODER_CALLBACK 處理建立解碼器實例。
WS_CREATE_ENCODER_CALLBACK 處理建立編碼器實例。
WS_DECODER_DECODE_CALLBACK 解碼訊息。
WS_DECODER_END_CALLBACK 解碼訊息的結尾。
WS_DECODER_GET_CONTENT_TYPE_CALLBACK 取得訊息的內容類型。
WS_DECODER_START_CALLBACK 開始解碼訊息。
WS_ENCODER_ENCODE_CALLBACK 編碼訊息。
WS_ENCODER_END_CALLBACK 編碼訊息的結尾。
WS_ENCODER_GET_CONTENT_TYPE_CALLBACK 取得訊息的內容類型。
WS_ENCODER_START_CALLBACK 開始編碼訊息。
WS_FREE_CHANNEL_CALLBACK 使用自訂通道系結處理通道的 WsFreeChannel 呼叫。
WS_FREE_DECODER_CALLBACK 處理釋放解碼器實例。
WS_FREE_ENCODER_CALLBACK 處理釋放編碼器實例。
WS_GET_CHANNEL_PROPERTY_CALLBACK 處理具有自訂通道系結之通道的 WsGetChannelProperty 呼叫。
WS_HTTP_REDIRECT_CALLBACK 當訊息即將自動重新導向至另一個使用 HTTP 自動重新導向功能的服務時叫用,如 RFC2616 中所述。
WS_OPEN_CHANNEL_CALLBACK 使用自訂通道系結處理通道的 WsOpenChannel 呼叫。
WS_READ_MESSAGE_END_CALLBACK 處理具有自訂通道系結之通道的 WsReadMessageEnd 呼叫。
WS_READ_MESSAGE_START_CALLBACK 處理具有自訂通道系結之通道的 WsReadMessageEnd 呼叫。
WS_RESET_CHANNEL_CALLBACK 使用自訂通道系結處理通道的 WsResetChannel 呼叫。
WS_SET_CHANNEL_PROPERTY_CALLBACK 處理具有自訂通道系結之通道的 WsSetChannelProperty 呼叫。
WS_SHUTDOWN_SESSION_CHANNEL_CALLBACK 處理具有自訂通道系結之通道的 WsShutdownSessionChannel 呼叫。
WS_WRITE_MESSAGE_END_CALLBACK 處理具有自訂通道系結之通道的 WsWriteMessageEnd 呼叫。
WS_WRITE_MESSAGE_START_CALLBACK 處理具有自訂通道系結之通道的 WsWriteMessageStart 呼叫。

 

列舉型別 描述
WS_CHANNEL_BINDING 表示要用於通道的通訊協定堆疊。
WS_CHANNEL_PROPERTY_ID 依識別碼識別每個通道屬性。
WS_CHANNEL_STATE 通道的狀態。
WS_CHANNEL_TYPE 指出通道的基本特性,例如是否為會話,以及支援的通訊方向。
WS_ENCODING 訊息格式) (不同的編碼方式。
WS_RECEIVE_OPTION 指定從通道接收時是否需要訊息。
WS_TRANSFER_MODE 指定傳送或接收的訊息是串流處理或緩衝處理。

 

函式 描述
WsAbandonMessage 略過通道訊息的其餘部分。
WsAbortChannel 中止指定通道上的所有擱置 I/O,並將通道狀態設定為 WS_CHANNEL_STATE_FAULTED
WsCloseChannel 不再需要通道時關閉通道。
WsCreateChannel 建立通道。
WsCreateChannelForListener 建立接聽程式的通道。
WsFreeChannel 釋放與通道相關聯的記憶體資源。
WsGetChannelProperty 擷取通道參數所參考之 Channel 的屬性。
WsOpenChannel 開啟端點的通道。
WsReadMessageEnd 從通道讀取訊息的結尾元素。
WsReadMessageStart 從通道讀取下一個訊息的標頭,並準備讀取本文專案。
WsReceiveMessage 接收訊息,並將訊息本文還原序列化為值。
WsRequestReply 傳送要求訊息並接收相互關聯的回復訊息。
WsResetChannel 重設通道,以便重複使用。
WsSendMessage 使用序列化在通道上傳送訊息,以寫入 body 元素。
WsSendReplyMessage 傳送訊息,該訊息是已接收之訊息的回復。
WsSetChannelProperty 設定通道的屬性。
WsSetMessageProperty 設定訊息的屬性。
WsWriteMessageEnd 將訊息的結尾元素寫入通道。
WsWriteMessageStart 將訊息的標頭寫出至通道,並準備撰寫本文專案。

 

Handle Description
WS_CHANNEL 用來參考通道的不透明類型。

 

結構 Description
WS_CHANNEL_DECODER 一組回呼,可轉換所接收訊息的內容類型和編碼位元組。
WS_CHANNEL_ENCODER 一組回呼,可轉換所傳送訊息的內容類型和編碼位元組。
WS_CHANNEL_PROPERTIES 一組 WS_CHANNEL_PROPERTY 結構。
WS_CHANNEL_PROPERTY 通道特定設定。
WS_CUSTOM_CHANNEL_CALLBACKS 一組回呼,形成自訂通道的實作。
WS_CUSTOM_HTTP_PROXY 用來指定通道的自訂 Proxy,使用 WS_CHANNEL_PROPERTY_CUSTOM_HTTP_PROXY WS_CHANNEL_PROPERTY_ID 列舉的值。
WS_HTTP_HEADER_MAPPING 表示對應為 WS_HTTP_MESSAGE_MAPPING一部分的個別標頭。
WS_HTTP_MESSAGE_MAPPING 訊息物件中應如何表示 HTTP 要求或回應的相關資訊。
WS_HTTP_REDIRECT_CALLBACK_CONTEXT 指定用來控制 HTTP 自動重新導向行為的回呼函式和狀態。
WS_MESSAGE_DESCRIPTION 指定作業描述的輸入和輸出 架構WS_MESSAGE