Passer au contenu principal
Données de configuration du réseau.

Syntaxe

Membres

maxUserCount   uint32_t Le nombre maximal d’utilisateurs uniques autorisés sur le réseau. Cette valeur doit être supérieure à 0.

Si un client devait enfreindre cette limite en appelant PartyNetwork::AuthenticateLocalUser(), l’opération échouera de manière asynchrone et PartyAuthenticateLocalUserCompletedStateChange::result sera défini sur PartyStateChangeResult::NetworkLimitReached.
maxDeviceCount   uint32_t Le nombre maximal d’appareils autorisés à se connecter au réseau. Les réseaux PlayFab Party peuvent évoluer pour prendre en charge de 2 à 128 appareils. Le service choisit une configuration de relais réseau optimisée pour votre scénario ; il est donc important de configurer maxDeviceCount dans PartyNetworkConfiguration pour qu’il corresponde au nombre maximal d’appareils attendu dans votre réseau.

Si un client devait enfreindre cette limite en appelant PartyManager::ConnectToNetwork(), l’opération échouera de manière asynchrone et PartyConnectToNetworkCompletedStateChange::result sera défini sur PartyStateChangeResult::NetworkLimitReached.
maxUsersPerDeviceCount   uint32_t Le nombre maximal d’utilisateurs autorisés par appareil. Cette valeur doit être comprise entre 1 et c_maxLocalUsersPerDeviceCount inclus.

Si un client devait enfreindre cette limite en appelant PartyNetwork::AuthenticateLocalUser(), l’opération échouera de manière asynchrone et PartyAuthenticateLocalUserCompletedStateChange::result sera défini sur PartyStateChangeResult::NetworkLimitReached.
maxDevicesPerUserCount   uint32_t Le nombre maximal d’appareils autorisés par utilisateur. Cette valeur doit être supérieure à 0.

Si un client devait enfreindre cette limite en appelant PartyNetwork::AuthenticateLocalUser(), l’opération échouera de manière asynchrone et PartyAuthenticateLocalUserCompletedStateChange::result sera défini sur PartyStateChangeResult::NetworkLimitReached.
maxEndpointsPerDeviceCount   uint32_t Le nombre maximal de points de terminaison autorisés par appareil. Cette valeur doit être comprise entre 0 et c_maxNetworkConfigurationMaxEndpointsPerDeviceCount inclus.

Si un client devait enfreindre cette limite en appelant PartyNetwork::CreateEndpoint() après que la configuration réseau a été rendue disponible, l’appel à PartyNetwork::CreateEndpoint() échouera de manière synchrone. Si le client avait déjà mis en file d’attente un nombre de créations de points de terminaison dépassant la limite au moment où la configuration réseau est devenue disponible, le client sera exclu du réseau et un PartyNetworkDestroyedStateChange sera généré.
directPeerConnectivityOptions   PartyDirectPeerConnectivityOptions Indique si et comment prendre en charge les tentatives de connexion directe d’égal à égal entre les appareils du réseau. Dans le cadre de l’authentification réussie d’un utilisateur initial auprès d’un réseau, un appareil peut tenter d’établir des connexions directes d’égal à égal avec d’autres appareils participant déjà au réseau, lorsque ces indicateurs le permettent. Pour les tentatives réussies, les messages de point de terminaison et les données de conversation entre les appareils sont transmis à l’aide de ces connexions directes. Pour les tentatives qui échouent en raison d’incompatibilités environnementales entre les appareils, toutes les communications entre ces appareils sont plutôt transmises via des serveurs de relais cloud transparents. Si ces indicateurs n’autorisent pas les appareils à tenter des connexions directes d’égal à égal, ceux-ci n’échangent jamais d’informations d’adresse IP et transmettent toujours les messages de point de terminaison et les données de conversation via des serveurs de relais cloud transparents.

Vous pouvez déterminer si l’appareil local a effectivement établi une connexion directe d’égal à égal avec un appareil distant spécifique en appelant PartyNetwork::GetDeviceConnectionType().

Une connectivité directe d’égal à égal réussie peut offrir une latence plus faible entre certains appareils, mais la tentative de l’établir exige également que les utilisateurs divulguent les adresses IP de leurs appareils à d’autres, ce qui peut poser problème en matière de confidentialité ou permettre à des utilisateurs malveillants d’attaquer potentiellement les appareils et les connexions Internet des homologues 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 appropriés à vos objectifs de performances et de sécurité.

En plus de la valeur configurée ici pour le réseau spécifique, les indicateurs peuvent éventuellement être restreints davantage par un appareil pour tous les réseaux auprès desquels 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 réellement en vigueur pour une paire d’appareils d’un réseau donné que s’il est activé à trois endroits : ce champ pour le réseau, et les options de masque locales respectives des deux appareils. Même si ce champ autorise la connectivité directe d’égal à égal sous la forme concernée, l’un ou l’autre appareil peut refuser unilatéralement la divulgation d’adresse IP et les tentatives de connexion directe entre eux en n’activant pas l’indicateur dans son option de masque d’appareil local. La valeur PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask autorise par défaut toutes les connexions directes d’égal à égal activées par les réseaux ; vous n’avez donc besoin de la configurer que si vous avez des exigences propres à l’appareil pour empêcher tout ou partie de la connectivité directe d’égal à égal 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 d’un nombre maximal configuré de connexions directes d’égal à égal 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 à des réseaux volumineux ou multiples avec d’autres appareils distants. Les communications avec les appareils supplémentaires sont simplement transmises via des serveurs de relais cloud transparents. Pour modifier ce nombre maximal de connexions directes d’égal à égal, utilisez PartyManager::SetOption() pour définir PartyOption::LocalDeviceMaxDirectPeerConnections.

Il est recommandé de ne pas imposer activement la disponibilité d’une connexion directe d’égal à égal 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 en matière de latence maximale des messages qui favorisent la connectivité directe d’égal à égal, il est préférable d’agir en fonction des observations concrètes actuelles de cette latence, telles que signalées par la statistique PartyEndpointStatistic::AverageDeviceRoundTripLatencyInMilliseconds, plutôt que de faire des hypothèses abstraites fondées sur le mécanisme de transmission. Sinon, vous risquez de gêner continuellement les 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.h

Voir aussi

Membres de Party
PartyNetwork::AuthenticateLocalUser
PartyAuthenticateLocalUserCompletedStateChange
PartyManager::ConnectToNetwork
PartyConnectToNetworkCompletedStateChange
PartyNetwork::CreateEndpoint
PartyNetworkDestroyedStateChange
PartyStateChangeResult
PartyDirectPeerConnectivityOptions
Dernière modification le 8 octobre 2026