Syntaxe
Constantes
Remarques
Dans le cadre de l’authentification réussie d’un premier utilisateur dans un réseau, un appareil peut tenter d’établir des connexions pair à pair directes avec d’autres appareils participant déjà au réseau, lorsque ces indicateurs déclarés dans la structure PartyNetworkConfiguration du réseau le permettent. Pour les tentatives réussies, les messages de points de terminaison et les données de chat entre les appareils sont transmis via ces connexions directes. Pour les tentatives qui échouent en raison d’incompatibilités environnementales entre les appareils, toutes les communications entre ces appareils sont transmises via des serveurs de relais cloud transparents. Si ces indicateurs n’autorisent pas les appareils à tenter des connexions directes entre pairs, ceux-ci n’échangent jamais d’informations d’adresse IP et transmettent toujours les messages de points de terminaison et les données de chat via des serveurs de relais cloud transparents.Vous pouvez déterminer si l’appareil local a effectivement établi une connexion pair à pair directe avec un appareil distant spécifique en appelant PartyNetwork::GetDeviceConnectionType().
Une connectivité directe entre pairs réussie peut offrir une latence plus faible entre certains appareils ; toutefois, tenter de l’établir oblige également les utilisateurs à divulguer les adresses IP de leurs appareils à d’autres, ce qui peut poser un problème de confidentialité ou permettre à des utilisateurs malveillants d’attaquer les appareils et les connexions Internet de leurs pairs en dehors du titre. Elle peut également ne pas être autorisée sur certaines plateformes pour des raisons de stratégie. Veillez à utiliser les indicateurs adaptés à vos objectifs de performances et de sécurité.
Outre la valeur PartyNetworkConfiguration::directPeerConnectivityOptions d’un réseau spécifique, les indicateurs peuvent éventuellement être limités davantage par un appareil pour tous les réseaux dans lesquels il s’authentifie, en utilisant PartyManager::SetOption() pour définir PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask. Tous les indicateurs sont évalués à l’aide d’une opération AND au niveau du bit. Autrement dit, un indicateur particulier n’est effectif pour une paire d’appareils d’un réseau donné que s’il est activé à trois endroits : dans la structure PartyNetworkConfiguration du réseau et dans les options de masque local respectives des deux appareils. Même si le réseau Party autorise la forme de connectivité directe entre pairs concernée, chacun des deux appareils peut refuser unilatéralement la divulgation d’adresse IP et les tentatives de connexion directe entre eux en n’activant pas l’indicateur. La valeur PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask autorise par défaut toutes les connexions directes entre pairs activées par les réseaux ; vous n’avez donc besoin de la configurer que si vous avez des exigences propres à l’appareil visant à empêcher tout ou partie de la connectivité directe entre pairs le concernant.
Pour éviter une consommation excessive de ressources, la bibliothèque Party empêche également en interne tout appareil de tenter d’établir plus qu’un nombre maximal configuré de connexions directes entre pairs sur l’ensemble des réseaux auxquels il participe actuellement, même si ces indicateurs le permettent. Cela n’affecte pas la capacité de l’appareil à participer à de grands réseaux ou à plusieurs réseaux comportant davantage d’appareils distants. La communication avec les appareils supplémentaires est simplement transmise via des serveurs de relais cloud transparents. Pour modifier ce nombre maximal de connexions directes entre pairs, utilisez PartyManager::SetOption() pour définir PartyOption::LocalDeviceMaxDirectPeerConnections.
Il est recommandé de ne pas imposer activement la disponibilité d’une connexion pair à pair directe pour une paire d’appareils donnée (c’est-à-dire de ne pas appeler PartyNetwork::LeaveNetwork() si PartyNetwork::GetDeviceConnectionType() signale une valeur autre que PartyDeviceConnectionType::DirectPeerConnection), car la méthode de transmission sous-jacente utilisée ne modifie pas la capacité logique globale de communication. Si la conception de votre jeu impose des exigences strictes de latence maximale des messages qui favorisent la connectivité directe entre pairs, il est préférable d’agir en fonction des observations concrètes actuelles de cette latence, telles que rapportées par la statistique PartyEndpointStatistic::AverageDeviceRoundTripLatencyInMilliseconds, plutôt que de faire des hypothèses abstraites basées sur le mécanisme de transmission. Sinon, vous risquez de gêner continuellement des utilisateurs qui essaient de jouer avec le même groupe d’amis et qui doivent toujours utiliser des serveurs de relais cloud transparents proches en raison de facteurs environnementaux indépendants de leur volonté.
Configuration requise
En-tête : Party.hVoir aussi
Membres de PartyPartyNetworkConfiguration
PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask
PartyManager::SetOption
PartyEndpointStatistic::AverageDeviceRoundTripLatencyInMilliseconds
PartyLocalEndpoint::GetEndpointStatistics
