チャネル (Windows Web サービス)

チャネルは、2 つ以上のパーティ間の通信コンテキストをカプセル化し、メッセージの送受信に使用されます。

クライアントで、 WsCreateChannel を使用してチャネルを作成します。 サーバーで 、WsCreateChannelForListener を使用して、リスナーを使用してクライアントが受け入れられるチャネルを作成 します

チャネルを作成するときに、チャネルのローカル動作と使用するワイヤ プロトコルの両方を決定する次の情報を指定します。

  • チャネルのメッセージ交換パターンを識別する WS_CHANNEL_TYPE
  • 使用する転送プロトコルを識別する WS_CHANNEL_BINDING
  • チャネルに使用されるセキュリティを指定するWS_SECURITY_DESCRIPTION。 サーバーで使用するチャネルを作成する場合、これは、特定のリスナーに対して受け入れられるすべてのチャネルに対して 1 回指定されます。
  • 追加のオプション設定を指定する set WS_CHANNEL_PROPERTYs (これらの設定の一覧については、 WS_CHANNEL_PROPERTY_ID 列挙を参照してください)。

チャネルを使用する前に、 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 RFC2616 で説明されているように、HTTP 自動リダイレクト機能を使用してメッセージが別のサービスに自動的にリダイレクトされるときに呼び出されます。
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 各チャネル プロパティを ID で識別します。
WS_CHANNEL_STATE チャネルの状態。
WS_CHANNEL_TYPE チャネルがセッションフルかどうか、サポートされている通信の方向など、チャネルの基本的な特性を示します。
WS_ENCODING さまざまなエンコード (メッセージ形式)。
WS_RECEIVE_OPTION チャネルから受信するときにメッセージが必要かどうかを指定します。
WS_TRANSFER_MODE 送受信されるメッセージをストリーミングするかバッファーに格納するかを指定します。

 

機能 Description
WsAbandonMessage チャネルのメッセージの残りの部分をスキップします。
WsAbortChannel 指定したチャネルで保留中のすべての I/O を中止し、チャネルの状態を WS_CHANNEL_STATE_FAULTEDに設定します。
WsCloseChannel 不要になったチャネルを閉じます。
WsCreateChannel チャネルを作成します。
WsCreateChannelForListener リスナーのチャネルを作成します。
WsFreeChannel チャネルに関連付けられているメモリ リソースを解放します。
WsGetChannelProperty channel パラメーターによって参照される Channel のプロパティを取得します。
WsOpenChannel エンドポイントへのチャネルを開きます。
WsReadMessageEnd チャネルからメッセージの終了要素を読み取ります。
WsReadMessageStart チャネルから次のメッセージのヘッダーを読み取り、body 要素を読み取る準備をします。
WsReceiveMessage メッセージを受信し、メッセージの本文を値として逆シリアル化します。
WsRequestReply 要求メッセージを送信し、相関応答メッセージを受信します。
WsResetChannel 再利用できるようにチャネルをリセットします。
WsSendMessage シリアル化を使用して本文要素を書き込むメッセージをチャネルに送信します。
WsSendReplyMessage 受信したメッセージへの応答であるメッセージを送信します。
WsSetChannelProperty チャネルのプロパティを設定します。
WsSetMessageProperty メッセージのプロパティを設定します。
WsWriteMessageEnd メッセージの終了要素をチャネルに書き込みます。
WsWriteMessageStart メッセージのヘッダーをチャネルに書き込み、body 要素を書き込む準備をします。

 

Handle Description
WS_CHANNEL チャネルを参照するために使用される不透明な型。

 

構造体 説明
WS_CHANNEL_DECODER 受信したメッセージのコンテンツ タイプとエンコードされたバイトを変換するコールバックのセット。
WS_CHANNEL_ENCODER 送信されたメッセージのコンテンツ タイプとエンコードされたバイトを変換できるコールバックのセット。
WS_CHANNEL_PROPERTIES WS_CHANNEL_PROPERTY構造体のセット。
WS_CHANNEL_PROPERTY チャネル固有の設定。
WS_CUSTOM_CHANNEL_CALLBACKS カスタム チャネルの実装を形成するコールバックのセット。
WS_CUSTOM_HTTP_PROXY WS_CHANNEL_PROPERTY_ID列挙のWS_CHANNEL_PROPERTY_CUSTOM_HTTP_PROXY値を使用して、チャネルのカスタム プロキシを指定するために使用されます。
WS_HTTP_HEADER_MAPPING WS_HTTP_MESSAGE_MAPPINGの一部としてマップされる個々のヘッダー 表します。
WS_HTTP_MESSAGE_MAPPING メッセージ オブジェクトで HTTP 要求または応答を表す方法に関する情報。
WS_HTTP_REDIRECT_CALLBACK_CONTEXT HTTP 自動リダイレクト動作を制御するためのコールバック関数と状態を指定します。
WS_MESSAGE_DESCRIPTION 入力と出力のスキーマは、特定の操作の説明に WS_MESSAGE