> ## 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.

# Constantes des modèles de session

> Référence des constantes prédéfinies des modèles de session MPSD (system, capabilities, metrics, memberInitialization, QoS) qui configurent les sessions multijoueurs XBOX.

<a id="top" />

Cette rubrique décrit les éléments prédéfinis d'un modèle de session multijoueur, sur la base de la version 107 des modèles de session. Ces éléments définissent les paramètres d'une session multijoueur.

**Contenu**

* [system](#system)
* [capabilities](#capabilities)
* [metrics](#metrics)
* [memberInitialization](#memberinitialization)
* [peerToPeerRequirements](#peertopeerrequirements)
* [peerToHostRequirements](#peertohostrequirements)
* [measurementServerAddresses](#measurementserveraddresses)
* [cloudComputePackage (déprécié)](#cloudcomputepackage)
* [arbitration (déprécié)](#arbitration)
* [broadcastViewerTitleIds](#broadcastviewertitleids)
* [ownershipPolicies](#ownershippolicies)

<a id="system" />

## system

| Constante système | Description | Valeurs valides | Valeur par défaut |
| - | - | - | - |
| `version` | Version du modèle de session. | 1 - n | aucune |
| `maxMembersCount` | Nombre total d'emplacements de membres de session pris en charge pour l'activité multijoueur. | 1 - 100 pour une session normale, 101+ pour une grande session | 100 |
| `visibility` | État de visibilité de la session, qui indique si d'autres utilisateurs peuvent voir ou rejoindre la session. | "private", "visible", "open" | "open" |
| `inviteProtocol` | Définir cette constante sur "game" permet aux invités de recevoir une notification lorsqu'ils sont invités à la session. | "game", "tournamentgame", "chat", "gameparty" | aucune |
| `reservedRemovalTimeout` | Délai d'expiration d'une réservation de membre, en millisecondes. La valeur 0 indique une expiration immédiate. La valeur `null` est considérée comme infinie. | 0 - n, `null` | 30000 |
| `inactiveRemovalTimeout` | Délai d'expiration au-delà duquel un membre est considéré comme inactif, en millisecondes. La valeur 0 indique une expiration immédiate. La valeur `null` est considérée comme infinie. | 0 - n, `null` | 0 |
| `readyRemovalTimeout` | Délai d'expiration au-delà duquel un membre est considéré comme prêt (ready), en millisecondes. La valeur 0 indique une expiration immédiate. La valeur `null` est considérée comme infinie. | 0 - n, `null` | 180000 |
| `sessionEmptyTimeout` | Délai d'expiration d'une session vide, en millisecondes. La valeur 0 indique une expiration immédiate. La valeur `null` est considérée comme infinie. | 0 - n, `null` | 0 |
| `capabilities` | Spécifie les fonctionnalités de la session. Pour plus d'informations, consultez la section [capabilities](#capabilities) plus loin dans cette rubrique. | Non applicable | Non applicable |
| `metrics` | Spécifie un ensemble d'exigences de qualité de service (QoS) définies par le titre, comme la latence et la bande passante, que les membres de la session doivent satisfaire. Pour plus d'informations, consultez la section [metrics](#metrics) plus loin dans cette rubrique. | Non applicable | Non applicable |
| `memberInitialization` | Spécifie les délais d'expiration et les exigences d'initialisation appliqués lorsque de nouveaux membres rejoignent la session. Pour plus d'informations, consultez la section [`memberInitialization`](#memberinitialization) plus loin dans cette rubrique. | Non applicable | Non applicable |
| `peerToPeerRequirements` | Spécifie les exigences QoS réseau pour les connexions en maillage pair-à-pair. Pour plus d'informations, consultez la section [peerToPeerRequirements](#peertopeerrequirements) plus loin dans cette rubrique. | Non applicable | Non applicable |
| `peerToHostRequirements` | Spécifie les exigences QoS réseau pour les connexions pair-à-hôte. Pour plus d'informations, consultez la section [peerToHostRequirements](#peertohostrequirements) plus loin dans cette rubrique. | Non applicable | Non applicable |
| `measurementServerAddresses` | Spécifie un ensemble de centres de données potentiels utilisés pour déterminer les mesures QoS. Pour plus d'informations, consultez la section [measurementServerAddresses](#measurementserveraddresses) plus loin dans cette rubrique. | Non applicable | Non applicable |
| `cloudComputePackage` (déprécié) | Spécifie les propriétés du package cloud XBOX Live Compute à allouer. Pour plus d'informations, consultez la section [cloudComputePackage](#cloudcomputepackage) plus loin dans cette rubrique. | Non applicable | Non applicable |
| `arbitration` (déprécié) | Spécifie les délais d'expiration dont disposent les membres pour soumettre les résultats d'arbitrage dans les tournois. Pour plus d'informations, consultez la section [arbitration (déprécié)](#arbitration) plus loin dans cette rubrique. | Non applicable | Non applicable |
| `broadcastViewerTitleIds` | Spécifie une liste d'ID de titres qui doivent toujours disposer d'un accès en lecture à la session. Pour plus d'informations, consultez la section [broadcastViewerTitleIds](#broadcastviewertitleids) plus loin dans cette rubrique. | Non applicable | Non applicable |
| `ownershipPolicies` | Spécifie les stratégies relatives à la propriété de la session. Pour plus d'informations, consultez la section [ownershipPolicies](#ownershippolicies) plus loin dans cette rubrique. | Non applicable | Non applicable |

[Retour en haut de cette rubrique.](#top)

<a id="capabilities" />

## capabilities

Les fonctionnalités (capabilities) sont des valeurs booléennes définies facultativement dans le modèle de session.
Si aucune fonctionnalité n'est nécessaire, une propriété `capabilities` vide doit être définie dans le modèle pour empêcher la spécification de fonctionnalités lors de la création de la session, sauf si le titre a besoin de fonctionnalités de session dynamiques.

| Fonctionnalité | Description | Valeurs valides | Valeur par défaut |
| - | - | - | - |
| `connectivity` | Indique si la session prend en charge la connectivité entre pairs. Si cette valeur est `false`, la session ne peut activer aucune métrique et les membres de la session ne peuvent pas définir `secureDeviceAddress`. Cette fonctionnalité ne peut pas être définie sur les grandes sessions. | `true`, `false` | `false` |
| `suppressPresenceActivityCheck` | Si `true`, désactive les vérifications de présence. | `true`, `false` | `false` |
| `gameplay` | Indique si la session représente un jeu réel, par opposition à une phase de configuration ou de menu comme un lobby ou le matchmaking. Si `true`, la session est en mode jeu. | `true`, `false` | `false` |
| `large` | Indique si la session est une grande session (plus de 100 membres). Les grandes sessions ne sont pas prises en charge avec Multiplayer Manager. | `true`, `false` | `false` |
| `connectionRequiredForActiveMembers` | Indique si une connexion est requise pour qu'un membre soit actif. | `true`, `false` | `false` |
| `cloudCompute` (déprécié) | Permet aux clients de demander l'allocation d'une instance de calcul cloud pour le compte de la session. Déprécié, car XBOX Live Compute n'est plus disponible en tant que service. | `true`, `false` | `false` |
| `autoPopulateServerCandidates` | Calcule et définit automatiquement `serverConnectionStringCandidates` à partir de `serverMeasurements`. Cette fonctionnalité ne peut pas être définie sur les grandes sessions. | `true`, `false` | `false` |
| `userAuthorizationStyle` | Indique si la session prend en charge les appels provenant de plateformes sans identité de titre forte. Cette fonctionnalité ne peut pas être définie sur les grandes sessions. | | |

Définir la fonctionnalité `userAuthorizationStyle` sur `true` fait passer les valeurs par défaut de la session pour `readRestriction` et `joinRestriction` à `local` au lieu de `none`. Cela signifie que les titres doivent utiliser des handles de recherche ou des handles de transfert pour rejoindre une session de jeu. | `true`, `false` | `false`
`crossPlay` | Indique que la session prend en charge le jeu multiplateforme entre les PC Windows et les appareils XBOX One ou XBOX Series. | `true`, `false` | `true`
`broadcast` | Indique que la session représente une diffusion. Le nom de la session doit être le xuid du diffuseur. Nécessite la fonctionnalité `large`. | `true`, `false` | `false`
`team` | Indique que la session représente une équipe de tournoi. Cette fonctionnalité ne peut pas être définie sur les sessions `large` ou `gameplay`. | `true`, `false` | `false`
`arbitration` | Indique que la session doit être créée par un principal de service qui ajoute l'entrée de serveur `arbitration`. Nécessite `gameplay`, mais ne peut pas être définie sur les sessions `large`. | `true`, `false` | `false`
`hasOwners` | Indique que la session a une stratégie de sécurité fondée sur le fait que certains membres sont propriétaires. | `true`, `false` | `false`
`searchable` | Indique que la session peut être la session cible d'un handle de recherche. Si les fonctionnalités `userAuthorizationStyle` et `searchable` sont définies, `hasOwners` doit également l'être. | `true`, `false` | `false`

#### Exemple : capabilities

```json theme={null}
"capabilities": {
    "connectivity": true,  
    "suppressPresenceActivityCheck": true,
    "gameplay": true,
    "large": true,
    "connectionRequiredForActiveMembers": true,
    "cloudCompute": true,
    "autoPopulateServerCandidates": true,
    "userAuthorizationStyle": true,
    "crossPlay": true,  
    "broadcast": true,  
    "team": true,
    "arbitration": true,
    "hasOwners": true,
    "searchable": true  
},
```

[Retour en haut de cette rubrique.](#top)

<a id="metrics" />

## metrics

Si les propriétés `metrics` ne sont pas spécifiées, elles prennent par défaut les valeurs nécessaires pour satisfaire les exigences QoS.

Si les propriétés `metrics` sont spécifiées, les valeurs doivent être suffisantes pour satisfaire les exigences QoS.

Cet élément n'est valide que si la fonctionnalité `connectivity` est définie pour la session.

| Métrique | Description | Valeurs valides | Valeur par défaut |
| - | - | - | - |
| `latency` | Indique si `latencyMaximum` est spécifié dans le modèle de session | `true`, `false` | Voir cette description. |
| `bandwidthDown` | Indique si `bandwidthDownMinimum` est spécifié dans le modèle de session | `true`, `false` | Voir cette description. |
| `bandwidthUp` | Indique si `bandwidthUpMinimum` est spécifié dans le modèle de session | `true`, `false` | Voir cette description. |
| `custom` | Indique si des métriques personnalisées sont spécifiées dans le modèle de session | `true`, `false` | Voir cette description. |

#### Exemple : metrics

```json theme={null}
"metrics": {
    "latency": true,
    "bandwidthDown": true,
    "bandwidthUp": true,
    "custom": true
},
```

[Retour en haut de cette rubrique.](#top)

<a id="memberinitialization" />

## memberInitialization

Si la propriété `memberInitialization` est définie, la session s'attend à ce que le système client ou le titre effectue l'initialisation après la création de la session ou lorsque de nouveaux membres rejoignent la session.

Les délais d'expiration et les étapes d'initialisation sont suivis automatiquement par la session, y compris les mesures QoS si des métriques sont définies.
Ces délais d'expiration remplacent les délais d'expiration de réservation et d'état ready de la session pour les membres dont `initializationEpisode` est défini.

`memberInitialization` ne peut pas être spécifié sur les grandes sessions.

| Élément | Description | Valeurs valides | Valeur par défaut |
| - | - | - | - |
| `joinTimeout` | Indique le nombre de millisecondes dont dispose un membre pour rejoindre la session. Les réservations des utilisateurs qui ne parviennent pas à rejoindre la session sont supprimées. | | |

**REMARQUE :** la durée par défaut est suffisante pour une exécution normale du titre, mais elle peut entraîner des expirations de jonction si un titre est en cours de débogage pendant le flux Multiplayer Session Directory (MPSD). Pendant le débogage, remplacez et augmentez cette valeur par défaut pour la session.| 0 - n | 10000
`measurementTimeout` | Indique le nombre de millisecondes dont dispose un membre de la session pour charger ses mesures. Un membre qui ne parvient pas à charger ses mesures est marqué avec le motif d'échec "timeout".  | 0 - n | 30000
`evaluationTimeout` | Indique le nombre de millisecondes dont dispose une évaluation externe pour charger les mesures. | 0 - n | 5000
`externalEvaluation` | Si `true`, indique que le code du titre évalue qui peut rejoindre la session en fonction des mesures QoS. Le service multijoueur n'applique aucune logique QoS, et c'est au titre de faire progresser l'étape d'initialisation. Les titres n'en ont généralement pas besoin. | `true`, `false` | `false`
`membersNeededToStart` | Nombre de membres nécessaires pour démarrer la session, uniquement pour l'épisode d'initialisation zéro. | 1 - `maxMembersCount` | 1

#### Exemple : memberInitialization

```json theme={null}
"memberInitialization": {
    "joinTimeout": 10000,
    "measurementTimeout": 30000,
    "evaluationTimeout": 5000,
    "externalEvaluation": false,
    "membersNeededToStart": 1
},
```

[Retour en haut de cette rubrique.](#top)

<a id="peertopeerrequirements" />

## peerToPeerRequirements

| Exigences réseau pair-à-pair | Description | Valeur par défaut |
| - | - | - |
| `latencyMaximum` | Latence maximale, en millisecondes, entre deux clients quelconques | 250 |
| `bandwidthMinimum` | Bande passante minimale, en kilobits par seconde, entre deux clients quelconques | 10000 |

#### Exemple : peerToPeerRequirements

```json theme={null}
"peerToPeerRequirements": {
    "latencyMaximum": 250,
    "bandwidthMinimum": 10000
},
```

[Retour en haut de cette rubrique.](#top)

<a id="peertohostrequirements" />

## peerToHostRequirements

| Exigences réseau pair-à-hôte | Description | Valeurs valides | Valeur par défaut |
| - | - | - | - |
| `latencyMaximum` | Latence maximale, en millisecondes, de la connexion pair-à-hôte | | 250 |
| `bandwidthDownMinimum` | Bande passante minimale, en kilobits par seconde, pour les informations envoyées de l'hôte vers le pair | | 100000 |
| `bandwidthUpMinimum` | Bande passante minimale, en kilobits par seconde, pour les informations envoyées du pair vers l'hôte | | 1000 |
| `hostSelectionMetric` | Indique la métrique utilisée pour sélectionner l'hôte | "bandwidthup", "bandwidthdown", "bandwidth" et "latency" | "latency" |

#### Exemple : peerToHostRequirements

```json theme={null}
"peerToHostRequirements": {
    "latencyMaximum": 250,
    "bandwidthDownMinimum": 100000,
    "bandwidthUpMinimum": 1000,
    "hostSelectionMetric": "bandwidthup"
},
```

[Retour en haut de cette rubrique.](#top)

<a id="measurementserveraddresses" />

## measurementServerAddresses

Ensemble des chaînes de connexion au serveur potentielles qui doivent être évaluées.
Les chaînes de connexion doivent être en minuscules.
`measurementServerAddresses` ne peut pas être spécifié sur les grandes sessions.

Les chaînes de connexion sont définies au format suivant.

`"<server name>": { "secureDeviceAddress": <device address> }`

où l'adresse d'appareil est l'adresse d'appareil sécurisée du serveur encodée en base 64.

#### Exemple : measurementServerAddresses

```json theme={null}
"measurementServerAddresses": {
    "server farm a": {
        "secureDeviceAddress": "r5Y="
    },
    "datacenter b": {
        "secureDeviceAddress": "rwY="
    }
},
```

[Retour en haut de cette rubrique.](#top)

<a id="cloudcomputepackage" />

## cloudComputePackage (déprécié)

Cette propriété est dépréciée, car le service XBOX Live Compute n'est plus disponible et a été abandonné.
Spécifie les propriétés du package de calcul cloud à allouer.

Nécessite que la fonctionnalité `cloudCompute` soit définie.

| Propriété | Description |
| - | - |
| `titleId` | Indique l'ID de titre du package de calcul cloud à allouer |
| `gsiSet` | Indique l'ensemble Global Security Infrastructure (GSI) du package de calcul cloud à allouer |
| `variant` | Indique la variante du package de calcul cloud à allouer |

#### Exemple : cloudComputePackage

```json theme={null}
"cloudComputePackage": {
    "titleId": "4567",
    "gsiSet": "128ce92a-45d0-4319-8a7e-bd8e940114ec",
    "variant": "30ebca60-d96e-4629-930b-6957aa6bfbfa"
},
```

[Retour en haut de cette rubrique.](#top)

<a id="arbitration" />

## arbitration (déprécié)

Cette propriété est dépréciée, car le service XBOX Live Compute n'est plus disponible et a été abandonné.
Spécifie les délais d'expiration du processus d'arbitrage.

Nécessite que la fonctionnalité `arbitration` soit définie.

L'heure de début de l'arbitrage est définie dans une session, dans l'élément */servers/arbitration/constants/system/startTime*.

| Délai d'expiration | Description | Valeurs valides | Valeur par défaut |
| - | - | - | - |
| `forfeitTimeout` | Indique le délai, en millisecondes, à compter de l'heure de début de l'arbitrage. | 0 - n | 60000 |
| `arbitrationTimeout` | Indique le délai, en millisecondes, à compter de l'heure de début de l'arbitrage, au bout duquel le résultat de l'arbitrage expire. Cette valeur ne peut pas être inférieure à la valeur de `forfeitTimeout`. | 0 - n | 300000 |

#### Exemple : arbitration

```json theme={null}
"arbitration": {
    "forfeitTimeout": 60000,
    "arbitrationTimeout": 300000
},
```

[Retour en haut de cette rubrique.](#top)

<a id="broadcastviewertitleids" />

## broadcastViewerTitleIds

Spécifie un tableau des ID des titres qui doivent toujours disposer d'un accès en lecture à la session de diffusion.

#### Exemple : broadcastViewerTitleIds

```json theme={null}
"broadcastViewerTitleIds" : ["34567", "8910"],
```

[Retour en haut de cette rubrique.](#top)

<a id="ownershippolicies" />

## ownershipPolicies

Spécifie comment gérer une session lorsque le dernier propriétaire quitte la session.
Nécessite que la fonctionnalité `hasOwners` soit définie.

| Stratégie de propriété | Description | Valeurs valides | Valeur par défaut |
| - | - | - | - |
| `migration` | Indique ce qui se passe lorsque le dernier propriétaire quitte la session. Si la stratégie de migration est définie sur "endsession", la session expire. Si elle est définie sur "oldest", le membre ayant rejoint la session le plus tôt est sélectionné pour devenir le nouveau propriétaire de la session. | "oldest", "endsession" | "endsession" |
| `allowNonOwnerInviteHandles` | Indique le comportement d'invitation des membres de la session qui ne sont pas propriétaires. Par défaut, les non-propriétaires ne peuvent pas envoyer d'invitations pour une session. | `true`, `false` | `false` |
| `nonOwnerModifiableSystemProperties` | Liste des noms de propriétés système que les non-propriétaires peuvent modifier sur les sessions dont la fonctionnalité `hasOwners` est définie sur `true`. | Liste de noms de propriétés système | Non applicable |

#### Exemple : ownershipPolicies

```json theme={null}
"ownershipPolicies": {
     "migration": "oldest",
     "allowNonOwnerInviteHandles": true,
     "nonOwnerModifiableSystemProperties": ["joinRestriction", "closed"] 
}
```

[Retour en haut de cette rubrique.](#top)


## Related topics

- [Concepts de Multiplayer Session Directory (MPSD)](/fr-CA/services/xbox-services/multiplayer/mpsd/concepts/live-mpsd-concepts-nav.md)
- [Configuration du service Multijoueur](/fr-CA/services/xbox-services/multiplayer/concepts/live-configure-the-multiplayer-service.md)
- [Invitations multijoueurs entre les versions de titres XDK et GDK](/fr-CA/services/xbox-services/multiplayer/invites/concepts/live-multiplayer-xdkinvites.md)
- [Concepts](/fr-CA/services/xbox-services/multiplayer/mpsd/concepts/index.md)
- [Modèles de session multijoueur](/fr-CA/services/xbox-services/multiplayer/mpsd/concepts/live-session-templates.md)
