comment Connecter à un groupe homologue

Cette rubrique explique comment une application se connecte à un groupe homologue à l’aide des API de regroupement pair.

Joindre un groupe homologue

Pour joindre un groupe homologue, appelez PeerGroupJoin, en transmettant le nom d’identité de l’homologue et de l’invitation (et un nom de Cloud PNRP facultatif, si le nom du Cloud dans l’invitation est ambigu).

En cas de réussite, PeerGroupJoin retourne un handle vers le groupe homologue.

Si l’homologue a déjà rejoint le groupe homologue, puis fermé le handle, le groupe homologue doit être rouvert en appelant PeerGroupOpen et en passant le nom du groupe homologue. Cet appel retourne un nouveau handle de groupe homologue.

Une fois le groupe homologue correctement joint, l’homologue peut se connecter directement au groupe homologue et commencer à interagir en appelant PeerGroupConnect. Une fois connecté, l’homologue est considéré comme « en ligne ».

Si une application n’interagit pas avec le groupe à ce moment-là, elle peut rester « hors connexion ». S’il choisit de participer directement au groupe homologue dans une instance ultérieure, un appel ultérieur à PeerGroupConnect le met en ligne. Une fois qu’un homologue a rejoint le groupe homologue, il doit se connecter au moins une fois avant de pouvoir publier des enregistrements dans le groupe homologue.

Ouverture d’un groupe homologue sans connexion (hors connexion)

Souvent, vous souhaiterez peut-être que l’application se connecte à un groupe pair, mais ne la participe pas directement, en recevant et en publiant des mises à jour d’enregistrement, mais pas en envoyant ou en recevant des messages de données. Une application est dans cet État « hors connexion » immédiatement après l’appel de PeerGroupCreate, PeerGroupJoinou PeerGroupOpen .

Une application hors connexion peut être mise en ligne à tout moment en appelant PeerGroupConnect. Une fois connecté, un groupe homologue ne peut pas passer en mode hors connexion jusqu’à ce que toutes les autres applications associées à cette identité et partageant ce groupe y aient également fermé des connexions.

Un groupe homologue est une ressource partagée, avec le même groupe homologue disponible pour plusieurs applications. si plusieurs applications pour la même identité et Windows utilisateur utilisent le même groupe pair, elles partagent également la même base de données sous-jacente et les mêmes connexions (voisin et direct). Si l’une de ces applications appelle PeerGroupConnect, toutes les autres applications pour cette identité/cet utilisateur participant au groupe se connectent également au groupe. Si un enregistrement est ajouté par une application alors que le groupe est hors connexion, d’autres applications sont également en mesure de le voir. En conséquence, une application doit être prête à se connecter à tout moment.

Connexion à un groupe homologue (en ligne)

Pour commencer à participer à un groupe, appelez PeerGroupConnect après avoir créé, rejoint ou ouvert le groupe. Dans cet État, les connexions directes peuvent être ouvertes avec d’autres pairs qui participent au même groupe en appelant PeerGroupOpenDirectConnection.

Pour détecter si une tentative de connexion a échoué, inscrivez-vous à l' _ événement d’échec de connexion d’événement de groupe pair _ _ _ . Cet événement est déclenché si l’infrastructure de regroupement ne peut pas trouver un autre membre auquel se connecter, ou si la connexion échoue avant la synchronisation de la base de données de groupe et qu’une autre connexion ne peut pas être établie.

Bien que plusieurs applications qui s’exécutent sur l’homologue et qui participent au même groupe avec la même identité d’homologue puissent être hors connexion, un appel à PeerGroupConnect par l’une des applications entraîne la mise en ligne de toutes les applications.

En outre, si une application sur l’homologue s’est connectée au groupe, toutes les autres applications qui appellent PeerGroupJoin ou PeerGroupOpen sont immédiatement connectées. Si une application appelle PeerGroupClose, le descripteur est fermé uniquement pour cette application. Par conséquent, un appel ultérieur à PeerGroupOpen par l’application retourne un nouveau descripteur de groupe et l’application est mise en ligne immédiatement si d’autres applications qui participent au même groupe sont toujours connectées.

Envoi et réception de données

Pour envoyer et recevoir des données entre des nœuds membres spécifiques du groupe, les connexions directes doivent être établies avec les membres avec lesquels vous souhaitez interagir. L’établissement d’une connexion directe est un appel asynchrone à PeerGroupOpenDirectConnection, en passant le handle d’un groupe connecté, ainsi que l’identité de l’homologue dans le groupe auquel vous souhaitez vous connecter. Cette méthode renverra un ID de connexion. Si l’appel réussit, un _ événement de _ _ connexion directe d’événement de groupe pair _ est déclenché sur l’homologue, en validant l’ID de connexion.

Pour recevoir des connexions directes d’autres homologues en ligne, inscrivez-vous à l' _ événement de connexion directe d’événement de groupe homologue _ _ _ avec un appel à PeerGroupRegisterEvent.

Une fois qu’une connexion directe a été établie, l’application peut commencer à envoyer des données avec des appels à PeerGroupSendData, en transmettant l’ID de connexion valide. L’ordonnancement des transmissions de données à parties multiples est géré par PeerGroupSendData. Toutefois, les applications doivent implémenter une pile de protocole appropriée pour gérer les données opaques retournées par cet appel d’API.

Pour recevoir des données via une connexion directe, l’application doit s’inscrire à _ l' _ événement de données entrantes de l’événement de groupe pair _ _ avec PeerGroupRegisterEvent. Le gestionnaire d’événements est chargé d’obtenir et de classer les données opaques et de les transmettre à l’application. Ces données sont obtenues dans le gestionnaire d’événements en appelant PeerGroupGetEventData avec le descripteur des événements inscrits.

Une connexion directe est fermée en appelant PeerGroupCloseDirectConnection et en passant l’ID de connexion obtenu lors d’un appel précédent à PeerGroupOpenDirectConnection ou reçu dans les données d’événement pour la _ _ connexion directe au groupe d’événements homologues _ _ .