Canal (servicios web de Windows)
Los canales encapsulan un contexto de comunicación entre dos o más partes y se usan para enviar y recibir mensajes.
En el cliente, use WsCreateChannel para crear un canal. En el servidor, use WsCreateChannelForListener para crear un canal que el cliente pueda aceptar mediante un agente de escucha.
Cuando se crea un canal, se especifica la siguiente información, que determina el comportamiento local del canal y el protocolo de conexión que se va a usar.
- Un WS_CHANNEL_TYPE, que identifica el patrón de intercambio de mensajes del canal.
- Un WS_CHANNEL_BINDING, que identifica el protocolo de transferencia que se va a usar.
- Un WS_SECURITY_DESCRIPTION, que especifica la seguridad usada para el canal. Al crear canales para su uso en un servidor, se especifica una vez para todos los canales que se aceptarán para un agente de escucha determinado.
- Un conjunto WS_CHANNEL_PROPERTYs, que especifica opciones opcionales adicionales (para obtener una lista de estos valores, vea las enumeraciones WS_CHANNEL_PROPERTY_ID ).
Antes de usar el canal, debe abrirlo llamando a la función WsOpenChannel y especificando el canal y la dirección del punto de conexión, junto con otra información opcional.
Para obtener información sobre las transiciones de estado de un canal, consulte el tema Estados del canal .
Para obtener más información sobre los canales, consulte el tema Información general sobre la capa de canal .
Los siguientes elementos de API se usan con canales.
Devolución de llamada | Descripción |
---|---|
WS_ABANDON_MESSAGE_CALLBACK | Controla la llamada WsAbandonMessage para un canal con enlace de canal personalizado. |
WS_ABORT_CHANNEL_CALLBACK | Controla la llamada WsAbortChannel para un canal con enlace de canal personalizado. |
WS_CLOSE_CHANNEL_CALLBACK | Controla la llamada de WsCloseChannel para un canal con enlace de canal personalizado. |
WS_CREATE_CHANNEL_CALLBACK | Controla la llamada de WsCloseChannel para un canal con enlace de canal personalizado. |
WS_CREATE_DECODER_CALLBACK | Controla la creación de una instancia de descodificador. |
WS_CREATE_ENCODER_CALLBACK | Controla la creación de una instancia de codificador. |
WS_DECODER_DECODE_CALLBACK | Descodifica un mensaje. |
WS_DECODER_END_CALLBACK | Descodifica el final de un mensaje. |
WS_DECODER_GET_CONTENT_TYPE_CALLBACK | Obtiene el tipo de contenido del mensaje. |
WS_DECODER_START_CALLBACK | Inicia la descodificación de un mensaje. |
WS_ENCODER_ENCODE_CALLBACK | Codifica un mensaje. |
WS_ENCODER_END_CALLBACK | Codifica el final de un mensaje. |
WS_ENCODER_GET_CONTENT_TYPE_CALLBACK | Obtiene el tipo de contenido del mensaje. |
WS_ENCODER_START_CALLBACK | Inicia la codificación de un mensaje. |
WS_FREE_CHANNEL_CALLBACK | Controla la llamada de WsFreeChannel para un canal con enlace de canal personalizado. |
WS_FREE_DECODER_CALLBACK | Controla la liberación de una instancia de descodificador. |
WS_FREE_ENCODER_CALLBACK | Controla la liberación de una instancia de codificador. |
WS_GET_CHANNEL_PROPERTY_CALLBACK | Controla la llamada de WsGetChannelProperty para un canal con enlace de canal personalizado. |
WS_HTTP_REDIRECT_CALLBACK | Se invoca cuando un mensaje está a punto de redirigirse automáticamente a otro servicio mediante la funcionalidad de redirección automática HTTP, como se describe en RFC2616. |
WS_OPEN_CHANNEL_CALLBACK | Controla la llamada de WsOpenChannel para un canal con enlace de canal personalizado. |
WS_READ_MESSAGE_END_CALLBACK | Controla la llamada WsReadMessageEnd para un canal con enlace de canal personalizado. |
WS_READ_MESSAGE_START_CALLBACK | Controla la llamada WsReadMessageEnd para un canal con enlace de canal personalizado. |
WS_RESET_CHANNEL_CALLBACK | Controla la llamada de WsResetChannel para un canal con enlace de canal personalizado. |
WS_SET_CHANNEL_PROPERTY_CALLBACK | Controla la llamada WsSetChannelProperty para un canal con enlace de canal personalizado. |
WS_SHUTDOWN_SESSION_CHANNEL_CALLBACK | Controla la llamada de WsShutdownSessionChannel para un canal con enlace de canal personalizado. |
WS_WRITE_MESSAGE_END_CALLBACK | Controla la llamada WsWriteMessageEnd para un canal con enlace de canal personalizado. |
WS_WRITE_MESSAGE_START_CALLBACK | Controla la llamada WsWriteMessageStart para un canal con enlace de canal personalizado. |
Enumeración | Descripción |
---|---|
WS_CHANNEL_BINDING | Indica la pila de protocolos que se va a usar para el canal. |
WS_CHANNEL_PROPERTY_ID | Identifica cada propiedad de canal por un identificador. |
WS_CHANNEL_STATE | Estado del canal. |
WS_CHANNEL_TYPE | Indica las características básicas del canal, como si es con sesión y qué direcciones de comunicación se admiten. |
WS_ENCODING | Las diferentes codificaciones (formatos de mensaje). |
WS_RECEIVE_OPTION | Especifica si se requiere un mensaje al recibir desde un canal. |
WS_TRANSFER_MODE | Especifica si los mensajes enviados o recibidos se transmiten o almacenan en búfer. |
Función | Descripción |
---|---|
WsAbandonMessage | Omite el resto de un mensaje para un canal. |
WsAbortChannel | Anula todas las E/S pendientes en un canal especificado y establece el estado del canal en WS_CHANNEL_STATE_FAULTED. |
WsCloseChannel | Cierra un canal cuando ya no es necesario. |
WsCreateChannel | Crea un canal. |
WsCreateChannelForListener | Crea un canal para un agente de escucha. |
WsFreeChannel | Libera los recursos de memoria asociados a un canal. |
WsGetChannelProperty | Recupera una propiedad del canal al que hace referencia el parámetro channel. |
WsOpenChannel | Abre un canal en un punto de conexión. |
WsReadMessageEnd | Lee los elementos de cierre de un mensaje de un canal. |
WsReadMessageStart | Lee los encabezados del siguiente mensaje del canal y se prepara para leer los elementos del cuerpo. |
WsReceiveMessage | Recibe un mensaje y deserializa el cuerpo del mensaje como un valor. |
WsRequestReply | Envía un mensaje de solicitud y recibe un mensaje de respuesta correlacionado. |
WsResetChannel | Restablezca un canal para que se pueda reutilizar. |
WsSendMessage | Envía un mensaje en un canal mediante la serialización para escribir el elemento body. |
WsSendReplyMessage | Envía un mensaje que es una respuesta a un mensaje recibido. |
WsSetChannelProperty | Establece una propiedad de un canal. |
WsSetMessageProperty | Establece una propiedad de un mensaje. |
WsWriteMessageEnd | Escribe los elementos de cierre de un mensaje en el canal. |
WsWriteMessageStart | Escriba los encabezados de un mensaje en el canal y se prepare para escribir los elementos del cuerpo. |
Handle | Descripción |
---|---|
WS_CHANNEL | Tipo opaco que se usa para hacer referencia a un canal. |
Estructura | Descripción |
---|---|
WS_CHANNEL_DECODER | Conjunto de devoluciones de llamada que transforman el tipo de contenido y los bytes codificados de un mensaje recibido. |
WS_CHANNEL_ENCODER | Conjunto de devoluciones de llamada que pueden transformar el tipo de contenido y los bytes codificados de un mensaje enviado. |
WS_CHANNEL_PROPERTIES | Un conjunto de estructuras de WS_CHANNEL_PROPERTY . |
WS_CHANNEL_PROPERTY | Una configuración específica del canal. |
WS_CUSTOM_CHANNEL_CALLBACKS | Conjunto de devoluciones de llamada que forman la implementación de un canal personalizado. |
WS_CUSTOM_HTTP_PROXY | se usa para especificar el proxy personalizado para el canal, utilizando el valor WS_CHANNEL_PROPERTY_CUSTOM_HTTP_PROXY de la enumeración WS_CHANNEL_PROPERTY_ID . |
WS_HTTP_HEADER_MAPPING | Representa un encabezado individual que se asigna como parte de WS_HTTP_MESSAGE_MAPPING. |
WS_HTTP_MESSAGE_MAPPING | Información sobre cómo se debe representar una solicitud o respuesta HTTP en un objeto de mensaje. |
WS_HTTP_REDIRECT_CALLBACK_CONTEXT | Especifica la función de devolución de llamada y el estado para controlar el comportamiento de redireccionamiento automático HTTP. |
WS_MESSAGE_DESCRIPTION | Esquema de la entrada y salida WS_MESSAGE para una descripción de operación determinada. |