Канал (веб-службы 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 для заданного описания операции. |