Compartilhar via


Canal (Windows Web Services)

Os canais encapsulam um contexto de comunicação entre duas ou mais partes e são usados para enviar e receber mensagens.

No cliente, use WsCreateChannel para criar um canal. No servidor, use WsCreateChannelForListener para criar um canal que possa ser aceito pelo cliente usando um ouvinte.

Ao criar um canal, você especifica as informações a seguir, que determinam o comportamento local do canal e o protocolo de transmissão a ser usado.

  • Um WS_CHANNEL_TYPE, que identifica o padrão de troca de mensagens do canal.
  • Um WS_CHANNEL_BINDING, que identifica o protocolo de transferência a ser usado.
  • Um WS_SECURITY_DESCRIPTION, que especifica a segurança usada para o canal. Ao criar canais para uso em um servidor, isso é especificado uma vez para todos os canais que serão aceitos para um determinado ouvinte.
  • Um conjunto WS_CHANNEL_PROPERTYs, que especificam configurações opcionais adicionais (para obter uma lista dessas configurações, consulte as enumerações WS_CHANNEL_PROPERTY_ID ).

Antes de usar o canal, você deve abri-lo chamando a função WsOpenChannel e especificando o canal e o endereço do ponto de extremidade, juntamente com outras informações opcionais.

Para obter informações sobre as transições de estado para um canal, consulte o tópico Estados do Canal .

Para obter mais informações sobre canais, consulte o tópico Visão geral da camada de canal .

Os seguintes elementos de API são usados com canais.

Callback Descrição
WS_ABANDON_MESSAGE_CALLBACK Manipula a chamada WsAbandonMessage para um canal com associação de canal personalizada.
WS_ABORT_CHANNEL_CALLBACK Manipula a chamada WsAbortChannel para um canal com associação de canal personalizada.
WS_CLOSE_CHANNEL_CALLBACK Manipula a chamada WsCloseChannel para um canal com associação de canal personalizada.
WS_CREATE_CHANNEL_CALLBACK Manipula a chamada WsCloseChannel para um canal com associação de canal personalizada.
WS_CREATE_DECODER_CALLBACK Manipula a criação de uma instância de decodificador.
WS_CREATE_ENCODER_CALLBACK Manipula a criação de uma instância do codificador.
WS_DECODER_DECODE_CALLBACK Decodifica uma mensagem.
WS_DECODER_END_CALLBACK Decodifica o final de uma mensagem.
WS_DECODER_GET_CONTENT_TYPE_CALLBACK Obtém o tipo de conteúdo da mensagem.
WS_DECODER_START_CALLBACK Inicia a decodificação de uma mensagem.
WS_ENCODER_ENCODE_CALLBACK Codifica uma mensagem.
WS_ENCODER_END_CALLBACK Codifica o final de uma mensagem.
WS_ENCODER_GET_CONTENT_TYPE_CALLBACK Obtém o tipo de conteúdo da mensagem.
WS_ENCODER_START_CALLBACK Inicia a codificação de uma mensagem.
WS_FREE_CHANNEL_CALLBACK Manipula a chamada WsFreeChannel para um canal com associação de canal personalizada.
WS_FREE_DECODER_CALLBACK Manipula a liberação de uma instância de decodificador.
WS_FREE_ENCODER_CALLBACK Manipula a liberação de uma instância do codificador.
WS_GET_CHANNEL_PROPERTY_CALLBACK Manipula a chamada WsGetChannelProperty para um canal com associação de canal personalizada.
WS_HTTP_REDIRECT_CALLBACK Invocado quando uma mensagem está prestes a ser redirecionada automaticamente para outro serviço utilizando a funcionalidade de redirecionamento automático HTTP, conforme descrito em RFC2616.
WS_OPEN_CHANNEL_CALLBACK Manipula a chamada WsOpenChannel para um canal com associação de canal personalizada.
WS_READ_MESSAGE_END_CALLBACK Manipula a chamada WsReadMessageEnd para um canal com associação de canal personalizado.
WS_READ_MESSAGE_START_CALLBACK Manipula a chamada WsReadMessageEnd para um canal com associação de canal personalizado.
WS_RESET_CHANNEL_CALLBACK Manipula a chamada WsResetChannel para um canal com associação de canal personalizada.
WS_SET_CHANNEL_PROPERTY_CALLBACK Manipula a chamada WsSetChannelProperty para um canal com associação de canal personalizada.
WS_SHUTDOWN_SESSION_CHANNEL_CALLBACK Manipula a chamada WsShutdownSessionChannel para um canal com associação de canal personalizado.
WS_WRITE_MESSAGE_END_CALLBACK Manipula a chamada WsWriteMessageEnd para um canal com associação de canal personalizada.
WS_WRITE_MESSAGE_START_CALLBACK Manipula a chamada WsWriteMessageStart para um canal com associação de canal personalizada.

 

Enumeração Descrição
WS_CHANNEL_BINDING Indica a pilha de protocolo a ser usada para o canal.
WS_CHANNEL_PROPERTY_ID Identifica cada propriedade de canal por uma ID.
WS_CHANNEL_STATE O estado do canal.
WS_CHANNEL_TYPE Indica as características básicas do canal, como se ele tem sessão e quais direções de comunicação têm suporte.
WS_ENCODING As diferentes codificações (formatos de mensagem).
WS_RECEIVE_OPTION Especifica se uma mensagem é necessária ao receber de um canal.
WS_TRANSFER_MODE Especifica se as mensagens enviadas ou recebidas são transmitidas ou armazenadas em buffer.

 

Função Descrição
WsAbandonMessage Ignora o restante de uma mensagem para um canal.
WsAbortChannel Anula todas as E/S pendentes em um canal especificado e define o estado do canal como WS_CHANNEL_STATE_FAULTED.
WsCloseChannel Fecha um canal quando ele não é mais necessário.
WsCreateChannel Cria um canal.
WsCreateChannelForListener Cria um canal para um ouvinte.
WsFreeChannel Libera os recursos de memória associados a um canal.
WsGetChannelProperty Recupera uma propriedade do Canal referenciado pelo parâmetro channel.
WsOpenChannel Abre um canal para um ponto de extremidade.
WsReadMessageEnd Lê os elementos de fechamento de uma mensagem de um canal.
WsReadMessageStart Lê os cabeçalhos da próxima mensagem do canal e se prepara para ler os elementos do corpo.
WsReceiveMessage Recebe uma mensagem e desserializa o corpo da mensagem como um valor.
WsRequestReply Envia uma mensagem de solicitação e recebe uma mensagem de resposta correlacionada.
WsResetChannel Redefina um canal para que ele possa ser reutilizado.
WsSendMessage Envia uma mensagem em um canal usando serialização para gravar o elemento body.
WsSendReplyMessage Envia uma mensagem que é uma resposta a uma mensagem recebida.
WsSetChannelProperty Define uma propriedade de um canal.
WsSetMessageProperty Define uma propriedade de uma mensagem.
WsWriteMessageEnd Grava os elementos de fechamento de uma mensagem no canal.
WsWriteMessageStart Escreva os cabeçalhos de uma mensagem no canal e prepare-se para gravar os elementos do corpo.

 

Handle Descrição
WS_CHANNEL Um tipo opaco usado para referenciar um canal.

 

Estrutura Descrição
WS_CHANNEL_DECODER Um conjunto de retornos de chamada que transformam o tipo de conteúdo e os bytes codificados de uma mensagem recebida.
WS_CHANNEL_ENCODER Um conjunto de retornos de chamada que podem transformar o tipo de conteúdo e bytes codificados de uma mensagem enviada.
WS_CHANNEL_PROPERTIES Um conjunto de estruturas WS_CHANNEL_PROPERTY .
WS_CHANNEL_PROPERTY Uma configuração específica do canal.
WS_CUSTOM_CHANNEL_CALLBACKS Um conjunto de retornos de chamada que formam a implementação de um canal personalizado.
WS_CUSTOM_HTTP_PROXY usado para especificar o proxy personalizado para o canal, usando o valor WS_CHANNEL_PROPERTY_CUSTOM_HTTP_PROXY da enumeração WS_CHANNEL_PROPERTY_ID .
WS_HTTP_HEADER_MAPPING Representa um cabeçalho individual mapeado como parte de WS_HTTP_MESSAGE_MAPPING.
WS_HTTP_MESSAGE_MAPPING Informações sobre como uma solicitação OU resposta HTTP deve ser representada em um objeto de mensagem.
WS_HTTP_REDIRECT_CALLBACK_CONTEXT Especifica a função de retorno de chamada e o estado para controlar o comportamento de redirecionamento automático HTTP.
WS_MESSAGE_DESCRIPTION O esquema do WS_MESSAGE de entrada e saída para uma determinada descrição da operação.