Channel (Windows Web Services)
Les canaux encapsulent un contexte de communication entre deux ou plusieurs parties et sont utilisés pour envoyer et recevoir des messages.
Sur le client, utilisez WsCreateChannel pour créer un canal. Sur le serveur, utilisez WsCreateChannelForListener pour créer un canal qui peut être accepté par le client à l’aide d’un écouteur.
Lorsque vous créez un canal, vous spécifiez les informations suivantes, qui déterminent à la fois le comportement local du canal et le protocole de transmission à utiliser.
- Un WS_CHANNEL_TYPE, qui identifie le modèle d’échange de messages du canal.
- Un WS_CHANNEL_BINDING, qui identifie le protocole de transfert à utiliser.
- Un WS_SECURITY_DESCRIPTION, qui spécifie la sécurité utilisée pour le canal. Lors de la création de canaux à utiliser dans un serveur, cela est spécifié une fois pour tous les canaux qui seront acceptés pour un écouteur donné.
- Ensemble WS_CHANNEL_PROPERTYqui spécifient des paramètres facultatifs supplémentaires (pour obtenir la liste de ces paramètres, consultez les énumérations WS_CHANNEL_PROPERTY_ID ).
Avant d’utiliser le canal, vous devez l’ouvrir en appelant la fonction WsOpenChannel et en spécifiant le canal et l’adresse du point de terminaison, ainsi que d’autres informations facultatives.
Pour plus d’informations sur les transitions d’état pour un canal, consultez la rubrique États de canal .
Pour plus d’informations sur les canaux, consultez la rubrique Vue d’ensemble de la couche de canal.
Les éléments d’API suivants sont utilisés avec les canaux.
Rappel | Description |
---|---|
WS_ABANDON_MESSAGE_CALLBACK | Gère l’appel WsAbandonMessage pour un canal avec liaison de canal personnalisée. |
WS_ABORT_CHANNEL_CALLBACK | Gère l’appel WsAbortChannel pour un canal avec liaison de canal personnalisée. |
WS_CLOSE_CHANNEL_CALLBACK | Gère l’appel WsCloseChannel pour un canal avec liaison de canal personnalisée. |
WS_CREATE_CHANNEL_CALLBACK | Gère l’appel WsCloseChannel pour un canal avec liaison de canal personnalisée. |
WS_CREATE_DECODER_CALLBACK | Gère la création d’un décodeur instance. |
WS_CREATE_ENCODER_CALLBACK | Gère la création d’un instance d’encodeur. |
WS_DECODER_DECODE_CALLBACK | Décode un message. |
WS_DECODER_END_CALLBACK | Décode la fin d’un message. |
WS_DECODER_GET_CONTENT_TYPE_CALLBACK | Obtient le type de contenu du message. |
WS_DECODER_START_CALLBACK | Démarre le décodage d’un message. |
WS_ENCODER_ENCODE_CALLBACK | Encode un message. |
WS_ENCODER_END_CALLBACK | Encode la fin d’un message. |
WS_ENCODER_GET_CONTENT_TYPE_CALLBACK | Obtient le type de contenu du message. |
WS_ENCODER_START_CALLBACK | Démarre l’encodage d’un message. |
WS_FREE_CHANNEL_CALLBACK | Gère l’appel WsFreeChannel pour un canal avec liaison de canal personnalisée. |
WS_FREE_DECODER_CALLBACK | Gère la libération d’un décodeur instance. |
WS_FREE_ENCODER_CALLBACK | Gère la libération d’un encodeur instance. |
WS_GET_CHANNEL_PROPERTY_CALLBACK | Gère l’appel WsGetChannelProperty pour un canal avec liaison de canal personnalisée. |
WS_HTTP_REDIRECT_CALLBACK | Appelé lorsqu’un message est sur le point d’être automatiquement redirigé vers un autre service utilisant la fonctionnalité de redirection automatique HTTP, comme décrit dans RFC2616. |
WS_OPEN_CHANNEL_CALLBACK | Gère l’appel WsOpenChannel pour un canal avec une liaison de canal personnalisée. |
WS_READ_MESSAGE_END_CALLBACK | Gère l’appel WsReadMessageEnd pour un canal avec liaison de canal personnalisée. |
WS_READ_MESSAGE_START_CALLBACK | Gère l’appel WsReadMessageEnd pour un canal avec liaison de canal personnalisée. |
WS_RESET_CHANNEL_CALLBACK | Gère l’appel WsResetChannel pour un canal avec liaison de canal personnalisée. |
WS_SET_CHANNEL_PROPERTY_CALLBACK | Gère l’appel WsSetChannelProperty pour un canal avec liaison de canal personnalisée. |
WS_SHUTDOWN_SESSION_CHANNEL_CALLBACK | Gère l’appel WsShutdownSessionChannel pour un canal avec liaison de canal personnalisée. |
WS_WRITE_MESSAGE_END_CALLBACK | Gère l’appel WsWriteMessageEnd pour un canal avec liaison de canal personnalisée. |
WS_WRITE_MESSAGE_START_CALLBACK | Gère l’appel WsWriteMessageStart pour un canal avec liaison de canal personnalisée. |
Énumération | Description |
---|---|
WS_CHANNEL_BINDING | Indique la pile de protocoles à utiliser pour le canal. |
WS_CHANNEL_PROPERTY_ID | Identifie chaque propriété de canal par un ID. |
WS_CHANNEL_STATE | État du canal. |
WS_CHANNEL_TYPE | Indique les caractéristiques de base du canal, par exemple s’il est de session et quelles directions de communication sont prises en charge. |
WS_ENCODING | Les différents encodages (formats de message). |
WS_RECEIVE_OPTION | Spécifie si un message est requis lors de la réception à partir d’un canal. |
WS_TRANSFER_MODE | Spécifie si les messages envoyés ou reçus sont diffusés en continu ou mis en mémoire tampon. |
Fonction | Description |
---|---|
WsAbandonMessage | Ignore le reste d’un message pour un canal. |
WsAbortChannel | Abandonne toutes les E/S en attente sur un canal spécifié et définit l’état du canal sur WS_CHANNEL_STATE_FAULTED. |
WsCloseChannel | Ferme un canal lorsqu’il n’est plus nécessaire. |
WsCreateChannel | Crée un canal. |
WsCreateChannelForListener | Crée un canal pour un écouteur. |
WsFreeChannel | Libère les ressources de mémoire associées à un canal. |
WsGetChannelProperty | Récupère une propriété du canal référencée par le paramètre channel. |
WsOpenChannel | Ouvre un canal à un point de terminaison. |
WsReadMessageEnd | Lit les éléments fermants d’un message à partir d’un canal. |
WsReadMessageStart | Lit les en-têtes du message suivant à partir du canal et se prépare à lire les éléments du corps. |
WsReceiveMessage | Reçoit un message et désérialise le corps du message en tant que valeur. |
WsRequestReply | Envoie un message de demande et reçoit un message de réponse corrélé. |
WsResetChannel | Réinitialisez un canal afin qu’il puisse être réutilisé. |
WsSendMessage | Envoie un message sur un canal à l’aide de la sérialisation pour écrire l’élément body. |
WsSendReplyMessage | Envoie un message qui est une réponse à un message reçu. |
WsSetChannelProperty | Définit une propriété d’un canal. |
WsSetMessageProperty | Définit une propriété d’un message. |
WsWriteMessageEnd | Écrit les éléments fermants d’un message dans le canal. |
WsWriteMessageStart | Écrivez les en-têtes d’un message dans le canal et préparez-vous à écrire les éléments du corps. |
Handle | Description |
---|---|
WS_CHANNEL | Type opaque utilisé pour référencer un canal. |
Structure | Description |
---|---|
WS_CHANNEL_DECODER | Ensemble de rappels qui transforment le type de contenu et les octets encodés d’un message reçu. |
WS_CHANNEL_ENCODER | Ensemble de rappels qui peuvent transformer le type de contenu et les octets encodés d’un message envoyé. |
WS_CHANNEL_PROPERTIES | Ensemble de structures WS_CHANNEL_PROPERTY . |
WS_CHANNEL_PROPERTY | Paramètre spécifique au canal. |
WS_CUSTOM_CHANNEL_CALLBACKS | Ensemble de rappels qui forment l’implémentation d’un canal personnalisé. |
WS_CUSTOM_HTTP_PROXY | permet de spécifier le proxy personnalisé pour le canal, à l’aide de la valeur WS_CHANNEL_PROPERTY_CUSTOM_HTTP_PROXY de l’énumération WS_CHANNEL_PROPERTY_ID . |
WS_HTTP_HEADER_MAPPING | Représente un en-tête individuel mappé dans le cadre de WS_HTTP_MESSAGE_MAPPING. |
WS_HTTP_MESSAGE_MAPPING | Informations sur la façon dont une requête ou une réponse HTTP doit être représentée dans un objet message. |
WS_HTTP_REDIRECT_CALLBACK_CONTEXT | Spécifie la fonction de rappel et l’état pour contrôler le comportement de redirection automatique HTTP. |
WS_MESSAGE_DESCRIPTION | Schéma des WS_MESSAGE d’entrée et de sortie pour une description d’opération donnée. |