Поделиться через


Канал (веб-службы Windows)

Каналы инкапсулируют контекст связи между двумя или более сторонами и используются для отправки и получения сообщений.

На клиенте используйте WsCreateChannel для создания канала. На сервере используйте WsCreateChannelForListener для создания канала, который можно принять клиентом с помощью прослушивателя .

При создании канала укажите следующие сведения, которые определяют как локальное поведение канала, так и используемый проводной протокол.

  • WS_CHANNEL_TYPE, определяющий шаблон обмена сообщениями канала.
  • WS_CHANNEL_BINDING, определяющий используемый протокол передачи.
  • WS_SECURITY_DESCRIPTION, указывающий безопасность, используемую для канала. При создании каналов для использования на сервере это указывается один раз для всех каналов, которые будут приняты для данного прослушивателя.
  • Набор WS_CHANNEL_PROPERTYs, указывающий дополнительные необязательные параметры (список этих параметров см. в перечислениях WS_CHANNEL_PROPERTY_ID).

Перед использованием канала необходимо открыть его, вызвав функцию WsOpenChannel и указав канал и адрес конечной точки , а также другие необязательные сведения.

Сведения о переходе состояния для канала см. в разделесостояния каналаканала.

Дополнительные сведения о каналах см. в разделе Обзор уровня каналов.

Следующие элементы API используются с каналами.

Обратный вызов Описание
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 Прерывает все ожидающие ввода-вывода в указанном канале и задает состояние канала WS_CHANNEL_STATE_FAULTED.
WsCloseChannel Закрывает канал, когда он больше не нужен.
WsCreateChannel Создает канал.
WsCreateChannelForListener Создает канал для прослушивателя.
WsFreeChannel Освобождает ресурсы памяти, связанные с каналом.
WsGetChannelProperty Извлекает свойство канала, на которое ссылается параметр канала.
WsOpenChannel Открывает канал к конечной точке.
WsReadMessageEnd Считывает закрывающие элементы сообщения из канала.
WsReadMessageStart Считывает заголовки следующего сообщения из канала и готовится к чтению элементов текста.
WsReceiveMessage Получает сообщение и десериализирует текст сообщения в виде значения.
WsRequestReply Отправляет сообщение запроса и получает коррелированные ответные сообщения.
WsResetChannel Сброс канала, чтобы его можно было повторно использовать.
WsSendMessage Отправляет сообщение на канал с помощью сериализации для записи элемента body.
WsSendReplyMessage Отправляет сообщение, которое является ответом на полученное сообщение.
WsSetChannelProperty Задает свойство канала.
WsSetMessageProperty Задает свойство сообщения.
WsWriteMessageEnd Записывает закрывающие элементы сообщения в канал.
WsWriteMessageStart Выпишите заголовки сообщения в канал и готовится к записи элементов текста.

 

Ручка Описание
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_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 для заданного описания операции.