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 seguintes informações, que determinam o comportamento local do canal e o protocolo de conexã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 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ópicoEstados do Canal.
Para obter mais informações sobre canais, consulte o tópico Visão geral da camada de canal .
Os seguintes elementos da API são usados com canais.
Retorno de chamada | Descrição |
---|---|
WS_ABANDON_MESSAGE_CALLBACK | Manipula o WsAbandonMessage chamada para um canal com vinculação de canal personalizada. |
WS_ABORT_CHANNEL_CALLBACK | Lida com a chamada de WsAbortChannel para um canal com ligação de canal personalizada. |
WS_CLOSE_CHANNEL_CALLBACK | Manipula a WsCloseChannel chamada para um canal com ligação de canal personalizada. |
WS_CREATE_CHANNEL_CALLBACK | Manipula a WsCloseChannel chamada para um canal com ligaçã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 de 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 | Começa a decodificar 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 | Começa a codificar uma mensagem. |
WS_FREE_CHANNEL_CALLBACK | Lida com a WsFreeChannel chamada para um canal com ligação de canal personalizada. |
WS_FREE_DECODER_CALLBACK | Manipula a liberação de uma instância do decodificador. |
WS_FREE_ENCODER_CALLBACK | Manipula a liberação de uma instância do codificador. |
WS_GET_CHANNEL_PROPERTY_CALLBACK | Manipula o WsGetChannelProperty chamada 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 no RFC2616. |
WS_OPEN_CHANNEL_CALLBACK | Lida com a chamada de WsOpenChannel para um canal com ligação de canal personalizada. |
WS_READ_MESSAGE_END_CALLBACK | Manipula o WsReadMessageEnd chamada para um canal com ligação de canal personalizada. |
WS_READ_MESSAGE_START_CALLBACK | Manipula o WsReadMessageEnd chamada para um canal com ligação de canal personalizada. |
WS_RESET_CHANNEL_CALLBACK | Lida com a chamada de WsResetChannel para um canal com ligação de canal personalizada. |
WS_SET_CHANNEL_PROPERTY_CALLBACK | Manipula o WsSetChannelProperty chamada para um canal com ligação de canal personalizada. |
WS_SHUTDOWN_SESSION_CHANNEL_CALLBACK | Manipula o WsShutdownSessionChannel chamada para um canal com ligação de canal personalizada. |
WS_WRITE_MESSAGE_END_CALLBACK | Manipula a chamada WsWriteMessageEnd para um canal com vinculação de canal personalizada. |
WS_WRITE_MESSAGE_START_CALLBACK | Manipula o WsWriteMessageStart chamada para um canal com associação de canal personalizada. |
Enumeração | Descrição |
---|---|
WS_CHANNEL_BINDING | Indica a pilha de protocolos a ser usada para o canal. |
WS_CHANNEL_PROPERTY_ID | Identifica cada propriedade de canal por um ID. |
WS_CHANNEL_STATE | O estado do canal. |
WS_CHANNEL_TYPE | Indica as características básicas do canal, como se ele é sessionful, e quais direções de comunicação são suportadas. |
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 num 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 referenciada 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 prepara-se 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 a 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 para o canal e se prepara para escrever os elementos do corpo. |
Pega | Descrição |
---|---|
WS_CHANNEL | Um tipo opaco usado para fazer referência a 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 os 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 que é 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 para o WS_MESSAGE de entrada e saída para uma determinada descrição de operação. |