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

# Mesures QoS de PlayFab Party

> Comment PlayFab Party utilise les mesures de latence QoS pour choisir les régions des sessions réseau, et comment les titres peuvent influencer la sélection de région pour la voix et les données.

PlayFab Party effectue des mesures de qualité de service (QoS) en arrière-plan afin d'offrir aux titres un accès à faible latence aux ressources Azure distantes. Nous présentons ici les principaux scénarios dans lesquels les titres sont susceptibles de rencontrer les fonctionnalités QoS de Party.

## Comprendre quand la QoS est mesurée

La bibliothèque Party commence à mesurer la QoS dès que Party est initialisé. Une fois que Party a mesuré la QoS avec succès, le seul moyen d'actualiser ces mesures est de nettoyer puis de réinitialiser la bibliothèque Party. Si la mesure de la QoS échoue, la bibliothèque Party réessaie la mesure lors de votre prochain appel à [PartyManager::CreateNewNetwork](/fr/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_createnewnetwork).

## Sélection des régions pour les réseaux Party

La principale raison pour laquelle PlayFab Party mesure la QoS est de permettre aux titres d'utiliser des données de latence lors de la sélection de la région Azure dans laquelle un réseau Party est hébergé.

Sans attendre d'examiner les résultats des mesures QoS, les titres peuvent appeler [PartyManager::CreateNewNetwork](/fr/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_createnewnetwork) avec une liste vide de régions préférées pour allouer un réseau dans la région actuellement la plus faible en latence.

```cpp theme={null}
uint32_t regionCount = 0;
const PartyRegion* regionList = nullptr;

PartyError error = PartyManager::GetSingleton().CreateNewNetwork(
    localUser,
    &networkConfiguration,
    regionCount,
    regionList,
    nullptr,
    nullptr,
    nullptr,
    nullptr);
```

Les titres peuvent également examiner les résultats des mesures QoS de la bibliothèque Party et sélectionner une liste de régions préférées en fonction de critères propres au titre.

Pour examiner les résultats des mesures QoS, attendez de recevoir un [PartyRegionsChangedStateChange](/fr/services/playfab/multiplayer/networking/reference/structs/partyregionschangedstatechange) réussi de la part de [PartyManager::StartProcessingStateChanges](/fr/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_startprocessingstatechanges).

```cpp theme={null}
switch (stateChange->stateChangeType)
{
    case PartyStateChangeType::RegionsChanged:
    {
        auto regionsChanged = static_cast<PartyRegionsChangedStateChange*>(stateChange);
        if (regionsChanged.result == PartyStateChangeResult::Succeeded)
        {
            m_qosResultsReady = true;
        }
    }

    // ...
}
```

Appelez ensuite [PartyManager::GetRegions](/fr/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_getregions) pour examiner et évaluer la liste actuelle des régions et des latences.

```cpp theme={null}
if (m_qosResultsReady)
{
    uint32_t regionCount;
    const PartyRegion* regionList;

    PartyError error = PartyManager::GetSingleton().GetRegions(
        &regionCount,
        &regionList);
    if (PARTY_FAILED(error))
    {
        DEBUGLOG("PartyManager::GetRegions failed: %s\n", PartyManager::GetErrorMessage(error));
        return;
    }

    // Prevent Party from using Azure regions above some latency threshold.
    // The game is unplayable in those scenarios.
    std::vector<PartyRegion> filteredRegionList = OmitRegionsAboveMaxLatency(regionCount, regionList, maxLatency);

    error = PartyManager::GetSingleton().CreateNewNetwork(
        localUser,
        &networkConfiguration,
        filteredRegionList.size(),
        filteredRegionList.data(),
        nullptr,
        nullptr,
        nullptr,
        nullptr);
    if (PARTY_FAILED(error))
    {
        DEBUGLOG("PartyManager::CreateNewNetwork failed: %s\n", PartyManager::GetErrorMessage(error));
        return;
    }
```

### Différences de prix régionales

Gardez à l'esprit que toutes les régions Party ne sont pas facturées de la même manière. Pour plus d'informations sur les différences de prix régionales, consultez [notre page de tarification](https://playfab.com/pricing/).

## Utilisation des régions optimales pour les fonctionnalités de chat accessible

L'autre raison pour laquelle PlayFab Party mesure la QoS est de rendre plus réactives les fonctionnalités d'accessibilité du chat : la synthèse vocale à partir de texte, la transcription de la parole en texte et la traduction. Ces fonctionnalités d'accessibilité utilisent des ressources Azure Cognitive Services régionales, et la mesure de la QoS permet une utilisation optimale des différentes régions.

## Comprendre les échecs de mesure de la QoS

Comme la création de réseaux et les fonctionnalités d'accessibilité du chat reposent sur les mesures QoS, il est utile d'examiner le résultat et le détail de l'erreur du [PartyRegionsChangedStateChange](/fr/services/playfab/multiplayer/networking/reference/structs/partyregionschangedstatechange). Les échecs de ce changement d'état peuvent fournir un contexte de débogage utile pour des échecs ultérieurs.


## Related topics

- [Utilisation des connexions pair à pair directes](/fr/services/playfab/multiplayer/networking/concepts-direct-peer-connectivity.md)
- [Fonctionnalités de PlayFab Party](/fr/services/playfab/multiplayer/networking/party-features.md)
- [Vue d'ensemble de PlayFab Party](/fr/services/playfab/multiplayer/networking/index.md)
- [Mesures de la qualité de service dans le GDK](/fr/build/console-features/networking/game-mesh/qos-networking.md)
- [Utiliser les balises QoS pour mesurer la latence des joueurs vers Azure](/fr/services/playfab/multiplayer/servers/using-qos-beacons-to-measure-player-latency-to-azure.md)
