Passer au contenu principal
La limitation se produit lorsqu’un client tente de dépasser la limite de débit des requêtes définie pour une API spécifique. PlayFab applique des limites de limitation afin de garantir un accès équitable aux ressources pour tous les titres.

Comprendre la limitation PlayFab

PlayFab utilise un algorithme de limitation de débit à fenêtre fixe. Chaque requête d’API adressée à PlayFab est traduite en une « clé ». La valeur de cette clé dépend du contenu de l’en-tête et du corps de la requête d’API. Chaque appel d’API individuel incrémente le compteur de la clé correspondante. Si une clé spécifique effectue plus de requêtes d’API que le nombre autorisé pendant une période définie (la limite de débit), toutes les requêtes suivantes utilisant cette clé sont limitées.

Comment PlayFab détermine la clé d’une requête d’API spécifique

Limites de débit d’API à l’échelle du titre

La clé est l’ID du titre.

Limites de débit d’API à l’échelle de l’espace de noms

La clé est l’ID de l’espace de noms, que Game Manager et les anciennes API appellent l’ID d’éditeur (Publisher ID). Un espace de noms est l’étendue d’identité des joueurs et de données partagées entre les titres, et non le studio administratif. Pour plus d’informations, consultez Concepts PlayFab.

Limites de débit d’API par entité

  • Pour les API non authentifiées/anonymes (par exemple les API LoginWith[Platform]), la clé est l’adresse IP du client.
  • Pour les API authentifiées, la clé dépend de l’en-tête et du corps de la requête, qui déterminent l’entité appelante et l’entité cible d’une API.
    • L’entité appelante d’une API est l’entité liée au jeton X-Authorization.
    • L’entité cible d’une API est définie dans le corps de la requête et varie selon l’API. Pour déterminer quelle entité est ciblée, examinez le corps de la requête de cette API spécifique. Par exemple, l’API GetUserData permet de spécifier une autre entité à l’aide de PlayFabId dans le corps de sa requête.
    • Si aucune entité cible n’est spécifiée dans le corps de l’API, la clé est l’ID d’entité de l’entité appelante.
    • Si une entité cible est spécifiée dans le corps de l’API :
      • Si l’entité appelante est de type MasterPlayerAccount, TitlePlayerAccount ou Character (par exemple, l’API a été authentifiée avec un jeton X-Authorization associé à l’un de ces types d’entités), la clé est l’ID de l’entité appelante.
      • Si l’entité appelante n’est pas de l’un des types d’entités précédents, la clé devient l’ID de l’entité cible.
Voici quelques exemples de la logique de limite de débit d’API par entité :
  1. Un client dont l’adresse IP est 23.192.228.80 appelle l’API Client/LoginWith[Platform]. La clé de la requête d’API est 23.192.228.80.
  2. Un client appelle Client/LinkCustomID et fournit un jeton X-Authorization correspondant à l’ID de compte joueur principal 408C36ADC841C0CD. Le corps de la requête de l’API ne mentionne aucun autre ID d’entité. La clé de la requête d’API est 408C36ADC841C0CD.
  3. Un client appelle Client/GetUserPublisherData et fournit un jeton X-Authorization correspondant à l’ID de compte joueur principal D5491A06D715E817. Dans le corps de la requête, le client fournit la valeur du compte joueur principal 25254A5AC4AEBA55 (par exemple, le corps de la requête contient PlayFabId:25254A5AC4AEBA55). La clé de la requête d’API est D5491A06D715E817, car l’entité appelante est ici un compte joueur principal.
  4. Un client appelle Client/GetUserPublisherData et fournit un jeton X-Authorization correspondant à l’ID de titre 123. Dans le corps de la requête, le client fournit la valeur du compte joueur principal 25254A5AC4AEBA55 (par exemple, le corps de la requête contient PlayFabId:25254A5AC4AEBA55). La clé de la requête d’API est 25254A5AC4AEBA55, car l’entité appelante est ici un titre.

Avantages de la limitation par entité cible

La limitation par entité cible est un mécanisme qui applique des limites à certaines opérations en fonction du type d’entité ciblée. Ces limites contribuent à maintenir la stabilité du système et à prévenir les abus, offrant aux utilisateurs :
  • Des limites cohérentes par joueur : la mise à l’échelle du titre n’affecte pas les limites des joueurs individuels, ce qui permet aux titres d’élargir leur base de joueurs sans se soucier de limites de capacité liées au nombre de joueurs.
  • Une limitation uniforme des joueurs : les joueurs sont soumis aux mêmes limites quel que soit le nombre d’utilisateurs actifs sur un titre, ce qui vous permet de détecter les problèmes de limitation tôt, même avec une petite base d’utilisateurs.
  • La stabilité du service : la limitation empêche le trafic d’un seul joueur de surcharger ou d’affecter négativement les services PlayFab ou une partition spécifique du plan de données partagée entre plusieurs titres.

Afficher les limites de débit d’API de votre titre

Vous pouvez consulter les limites de débit d’API qui s’appliquent à votre titre dans Game Manager :
  1. Connectez-vous à Game Manager et sélectionnez votre titre.
  2. Sélectionnez Settings dans le menu de gauche, puis Limits.
  3. Sélectionnez l’onglet API Rate Limits.
L’onglet affiche les limites de votre titre, y compris celles que PlayFab a ajustées pour votre titre ou votre espace de noms. Les API sont regroupées par produit, comme Identity, Economy and UGC et Multiplayer. Pour trouver une API, sélectionnez son produit ou saisissez son nom dans la zone de recherche, par exemple LoginWithCustomID. Le nom de chaque API est suivi du type de sa limite :
  • (title limits) : limite à l’échelle du titre. Tous les appels à l’API provenant de votre titre sont comptabilisés dans une seule limite.
  • (namespace limits) : limite à l’échelle de l’espace de noms. Tous les appels à l’API provenant des titres de votre espace de noms sont comptabilisés dans une seule limite.
  • (per-entity limits) : limite par entité. Chaque clé est comptabilisée dans sa propre limite.
La colonne Entity type indique les entités auxquelles une limite s’applique :
  • Pour les limites à l’échelle du titre et de l’espace de noms, elle affiche All.
  • Pour les limites par entité, elle affiche le type de l’entité à laquelle appartient la clé, par exemple title ou title_player_account. PlayFab vérifie les lignes de haut en bas, et Default s’applique à tout type d’entité qui ne dispose pas de sa propre ligne.
La colonne Limits indique le nombre d’appels autorisés dans chaque fenêtre de temps, par exemple 100 calls per 10 seconds. Par exemple, supposons qu’une API dispose d’une limite par entité avec une ligne title et une ligne Default. Si votre serveur de jeu appelle l’API avec la clé secrète de votre titre et que la requête ne cible pas une autre entité, la clé est l’ID de votre titre : c’est donc la ligne title qui s’applique. Comme tous ces appels provenant de votre back-end partagent une même clé, ils peuvent atteindre la limite beaucoup plus rapidement que les appels de joueurs individuels. Si un joueur appelle l’API, la clé est l’ID du joueur : c’est donc la ligne Default qui s’applique. Pour plus d’informations, consultez Comment PlayFab détermine la clé d’une requête d’API spécifique.

Voir aussi

Dernière modification le 12 octobre 2026