Compartir a través de


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.