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. |