> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# PartyNetworkConfiguration

> Données de configuration du réseau.

Données de configuration du réseau.

## Syntaxe

```cpp theme={null}
struct PartyNetworkConfiguration {  
    uint32_t maxUserCount;  
    uint32_t maxDeviceCount;  
    uint32_t maxUsersPerDeviceCount;  
    uint32_t maxDevicesPerUserCount;  
    uint32_t maxEndpointsPerDeviceCount;  
    PartyDirectPeerConnectivityOptions directPeerConnectivityOptions;  
}  
```

### Membres

**`maxUserCount`**   uint32\_t

Le nombre maximal d'utilisateurs uniques autorisés sur le réseau.

Cette valeur doit être supérieure à 0. <br /><br /> Si un client devait enfreindre cette limite en appelant [PartyNetwork::AuthenticateLocalUser()](/fr/services/playfab/multiplayer/networking/reference/classes/PartyNetwork/methods/partynetwork_authenticatelocaluser), l'opération échouera de manière asynchrone et [PartyAuthenticateLocalUserCompletedStateChange::result](/fr/services/playfab/multiplayer/networking/reference/structs/partyauthenticatelocalusercompletedstatechange) sera défini sur [PartyStateChangeResult::NetworkLimitReached](/fr/services/playfab/multiplayer/networking/reference/enums/partystatechangeresult).

**`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. <br /><br /> Si un client devait enfreindre cette limite en appelant [PartyManager::ConnectToNetwork()](/fr/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_connecttonetwork), l'opération échouera de manière asynchrone et [PartyConnectToNetworkCompletedStateChange::result](/fr/services/playfab/multiplayer/networking/reference/structs/partyconnecttonetworkcompletedstatechange) sera défini sur [PartyStateChangeResult::NetworkLimitReached](/fr/services/playfab/multiplayer/networking/reference/enums/partystatechangeresult).

**`maxUsersPerDeviceCount`**   uint32\_t

Le nombre maximal d'utilisateurs autorisés par appareil.

Cette valeur doit être comprise entre 1 et `c_maxLocalUsersPerDeviceCount` inclus. <br /><br /> Si un client devait enfreindre cette limite en appelant [PartyNetwork::AuthenticateLocalUser()](/fr/services/playfab/multiplayer/networking/reference/classes/PartyNetwork/methods/partynetwork_authenticatelocaluser), l'opération échouera de manière asynchrone et [PartyAuthenticateLocalUserCompletedStateChange::result](/fr/services/playfab/multiplayer/networking/reference/structs/partyauthenticatelocalusercompletedstatechange) sera défini sur [PartyStateChangeResult::NetworkLimitReached](/fr/services/playfab/multiplayer/networking/reference/enums/partystatechangeresult).

**`maxDevicesPerUserCount`**   uint32\_t

Le nombre maximal d'appareils autorisés par utilisateur.

Cette valeur doit être supérieure à 0. <br /><br /> Si un client devait enfreindre cette limite en appelant [PartyNetwork::AuthenticateLocalUser()](/fr/services/playfab/multiplayer/networking/reference/classes/PartyNetwork/methods/partynetwork_authenticatelocaluser), l'opération échouera de manière asynchrone et [PartyAuthenticateLocalUserCompletedStateChange::result](/fr/services/playfab/multiplayer/networking/reference/structs/partyauthenticatelocalusercompletedstatechange) sera défini sur [PartyStateChangeResult::NetworkLimitReached](/fr/services/playfab/multiplayer/networking/reference/enums/partystatechangeresult).

**`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. <br /><br /> Si un client devait enfreindre cette limite en appelant [PartyNetwork::CreateEndpoint()](/fr/services/playfab/multiplayer/networking/reference/classes/PartyNetwork/methods/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](/fr/services/playfab/multiplayer/networking/reference/structs/partynetworkdestroyedstatechange) sera généré.

**`directPeerConnectivityOptions`**   [PartyDirectPeerConnectivityOptions](/fr/services/playfab/multiplayer/networking/reference/enums/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. <br /><br /> 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()](/fr/services/playfab/multiplayer/networking/reference/classes/PartyNetwork/methods/partynetwork_getdeviceconnectiontype).   <br /><br /> 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é.   <br /><br /> 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()](/fr/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_setoption) pour définir [PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask](/fr/services/playfab/multiplayer/networking/reference/enums/partyoption). 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](/fr/services/playfab/multiplayer/networking/reference/enums/partyoption) 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.   <br /><br /> 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()](/fr/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_setoption) pour définir [PartyOption::LocalDeviceMaxDirectPeerConnections](/fr/services/playfab/multiplayer/networking/reference/enums/partyoption).   <br /><br /> 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()](/fr/services/playfab/multiplayer/networking/reference/classes/PartyNetwork/methods/partynetwork_leavenetwork) si [PartyNetwork::GetDeviceConnectionType()](/fr/services/playfab/multiplayer/networking/reference/classes/PartyNetwork/methods/partynetwork_getdeviceconnectiontype) signale une valeur autre que [PartyDeviceConnectionType::DirectPeerConnection](/fr/services/playfab/multiplayer/networking/reference/enums/partydeviceconnectiontype)), 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](/fr/services/playfab/multiplayer/networking/reference/enums/partyendpointstatistic), 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](/fr/services/playfab/multiplayer/networking/reference/party_members)\
[PartyNetwork::AuthenticateLocalUser](/fr/services/playfab/multiplayer/networking/reference/classes/PartyNetwork/methods/partynetwork_authenticatelocaluser)\
[PartyAuthenticateLocalUserCompletedStateChange](/fr/services/playfab/multiplayer/networking/reference/structs/partyauthenticatelocalusercompletedstatechange)\
[PartyManager::ConnectToNetwork](/fr/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_connecttonetwork)\
[PartyConnectToNetworkCompletedStateChange](/fr/services/playfab/multiplayer/networking/reference/structs/partyconnecttonetworkcompletedstatechange)\
[PartyNetwork::CreateEndpoint](/fr/services/playfab/multiplayer/networking/reference/classes/PartyNetwork/methods/partynetwork_createendpoint)\
[PartyNetworkDestroyedStateChange](/fr/services/playfab/multiplayer/networking/reference/structs/partynetworkdestroyedstatechange)\
[PartyStateChangeResult](/fr/services/playfab/multiplayer/networking/reference/enums/partystatechangeresult)\
[PartyDirectPeerConnectivityOptions](/fr/services/playfab/multiplayer/networking/reference/enums/partydirectpeerconnectivityoptions)


## Related topics

- [PartyNetworkConfigurationMadeAvailableStateChange](/fr/services/playfab/multiplayer/networking/reference/structs/partynetworkconfigurationmadeavailablestatechange.md)
- [PartyNetwork::GetNetworkConfiguration](/fr/services/playfab/multiplayer/networking/reference/classes/PartyNetwork/methods/partynetwork_getnetworkconfiguration.md)
- [PartyOption](/fr/services/playfab/multiplayer/networking/reference/enums/partyoption.md)
- [PartyNetwork::GetDeviceConnectionType](/fr/services/playfab/multiplayer/networking/reference/classes/PartyNetwork/methods/partynetwork_getdeviceconnectiontype.md)
- [PartyManager::ConnectToNetwork](/fr/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_connecttonetwork.md)
