Канал (веб-службы 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 | Записывает заголовки сообщения в канал и готовится к записи элементов основного текста. |
Handle | Описание |
---|---|
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 для описания данной операции. |