Freigeben über


PartyRegionQualityMeasurementConfiguration

Die Konfiguration, die von der Parteibibliothek verwendet wird, um das Verhalten der Regionsqualitätsmessung zu steuern.

Syntax

struct PartyRegionQualityMeasurementConfiguration {  
    uint32_t totalMeasurementTimeoutInMilliseconds;  
    uint16_t highLatencyHintInMilliseconds;  
    uint16_t minRequiredSuccessfulResponses;  
    uint16_t idealNumberOfSuccessfulResponses;  
    uint16_t maxRetriesWithNoResponse;  
    uint16_t maxTimeoutsAfterResponse;  
}  

Mitglieder

totalMeasurementTimeoutInMilliseconds uint32_t

Die maximale Anzahl von Millisekunden zum Auflösen von Hostnamen und zum Messen der Netzwerkbedingungen zwischen dem lokalen Gerät und playFab Quality of Service Beacon-Servern.

Dieser Wert steuert die maximal zulässige Zeit in Millisekunden für die Parteibibliothek, um die Hostnamen des PlayFab Quality of Service-Beaconservers für alle verfügbaren Regionen aufzulösen und einfache Nachrichten zu senden, um die Verbindungsqualität für sie zu messen. Wenn Umgebungsprobleme eine langsame Namensauflösung oder eine hohe Latenz/Paketverlust in einigen Regionen verursachen, werden im Ergebnis PartyRegionsChangedStateChange nur die Regionen gemeldet, die mindestens einmal innerhalb dieses Timeouts kontaktiert wurden.

Dieser Wert enthält oder wirkt sich nicht auf die Zeit aus, die die Parteibibliothek benötigt, um die Liste der verfügbaren Regionen aus dem PlayFab-Dienst abzurufen.

Anwendungen sollten dieses Timeout in der Regel in Bezug auf Ziele der Benutzererfahrung/worst cases definieren, anstatt zu versuchen, eine bestimmte Anzahl basierend auf technischen Annahmen abzuleiten. Die genaue Zeitspanne, die zum Messen einer bestimmten Region oder aller Regionen erforderlich ist, kann abhängig von Faktoren wie der Anzahl der verfügbaren Regionen, den aktuellen Netzwerkumgebungsbedingungen, den dynamisch abgestimmten Timeouts der Parteibibliothek basierend auf der beobachteten Latenz und mehr stark variieren.

Dieser Wert ist praktisch ein Timeout im ungünstigsten Fall für Geräte, bei denen vollständige oder teilweise Fehler auftreten. Dies kann nützlich sein, um reale Beobachtungen typischer Erfolge zu vergleichen. Mithilfe der Standardmäßigen PartyRegionQualityMeasurementConfiguration-Werte, Regionsverfügbarkeit und Playernutzungsmuster stellt die Party-Bibliothek derzeit fest, dass die meisten Geräte weltweit den gesamten Messvorgang in weniger als 2,3 Sekunden erfolgreich abschließen und 97 % der Geräte in weniger als 6 Sekunden erfolgreich abgeschlossen werden. Es wird erwartet, dass sich diese Dauer im Laufe der Zeit leicht erhöhen wird, wenn weitere Regionen eingeführt werden.

Der Standardwert ist 15000 (15 Sekunden), wenn PartyOption::RegionQualityMeasurementConfiguration nicht konfiguriert wurde.

Der Wert 0 (null) bedeutet, dass es kein Timeout gibt, und daher dürfen alle Messungen abgeschlossen werden, unabhängig davon, wie lange es für einen erfolgreichen oder fehlgeschlagenen Bereich dauert. Andernfalls beträgt der Mindestwert 50 Millisekunden.

highLatencyHintInMilliseconds uint16_t

Ein Hinweis, der den höchsten Latenzschwellenwert in Millisekunden angibt, über dem die Anwendung eine Region als zu latent angibt, um zusätzliche Zeit mit detaillierten Messungen zu verbringen.

Dieser Zielwert stellt eine weiche Obergrenze für die Regionslatenz dar. Dies verhindert nicht direkt das Einschließen von Regionen, die eine höhere Latenz aufweisen, aber es bewirkt, dass die Parteibibliothek Timeout- und Wiederholungswerte auswählt, die für Regionen mit geringerer Latenz als dieser Anzahl optimiert sind. Es wird auch für jede Region überprüft, nachdem die minimale Anzahl von Antworten (konfiguriert im Feld minRequiredSuccessfulResponses ) empfangen wurde. Wenn die median gemessene Latenz für eine Region größer als dieses Ziel ist, wird die ideale Anzahl von Antworten (konfiguriert im Feld idealNumberOfSuccessfulResponses ) nicht verwendet, und es werden keine weiteren Messversuche gesendet.

Dieser Wert darf nicht 0 (null) sein.

Der Standardwert ist 200, wenn PartyOption::RegionQualityMeasurementConfiguration nicht konfiguriert wurde.

minRequiredSuccessfulResponses uint16_t

Die mindeste Anzahl von erfolgreichen Nachrichtenantworten für die Messung, die für jede Region für die grundlegende Auswertung erforderlich ist.

Es wird erwartet, dass jede zu messende potenzielle Region mindestens so oft während des einfachen Nachrichtenaustauschs der Qualitätsmessung erfolgreich reagiert, bevor die Ergebnisse als genau genug angesehen werden, um die HighLatencyHintInMilliseconds-Feldziellatenz zu bewerten. Das Festlegen größerer Mindestanforderungen führt zu mehr Messproben und somit zu mehr Konsistenz und Genauigkeit angesichts etwaiger Ausreißerpaketschwankungen, auf Kosten von mehr Zeit für die Fertigstellung.

Auch ohne ausreichende erfolgreiche Antworten gilt die Messung eines bestimmten Bereichs als abgeschlossen, wenn eine der folgenden Punkte auftritt: Keine erfolgreichen Antworten eingehen und die Anzahl der Versuche den im Feld maxRetriesWithNoResponse konfigurierten Wert überschreitet, mindestens eine Antwort eingetroffen ist, und die Anzahl der Versuche überschreitet den im Feld maxTimeoutsAfterResponse konfigurierten Wert oder das Gesamttimeout für alle in konfigurierten Regionen. TotalMeasurementTimeoutInMilliseconds-Feld verstrichen.

Dieser Wert darf nicht 0 (null) sein.

Der Standardwert ist 3, wenn PartyOption::RegionQualityMeasurementConfiguration nicht konfiguriert wurde.

idealNumberOfSuccessfulResponses uint16_t

Die Anzahl der für jede Region gewünschten erfolgreichen Antworten von Messnachrichten, um eine gründliche Auswertung zu erreichen.

Dieser Wert stellt die bevorzugte Gesamtanzahl erfolgreicher Antworten dar, um die gewünschte Genauigkeit bei Latenzmessungen für die relevanten Regionen zu erreichen. Dieser Wert muss gleich oder höher als der Mindestwert im MinRequiredSuccessfulResponses-Feld sein. Die Parteibibliothek versucht nur, die zusätzliche Antwortanzahl differenz zwischen dem minimalen und diesem idealen Wert für eine Region zu erhalten, wenn für diese Region bereits eine mittlere Latenz gemessen wurde, die kleiner oder gleich dem im Feld highLatencyHintInMilliseconds konfigurierten Schwellenwert ist. Die ideale Anzahl von Antworten dieses Felds ermöglicht es, die Messgenauigkeit für Regionen, die für das lokale Gerät wahrscheinlich einen höheren Wert haben, weiter zu verfeinern, ohne auch diese zusätzliche Zeit für die Regionen mit höherer Latenz aufwenden zu müssen.

Wenn die Mindestanzahl von Antworten für eine Region nicht abgerufen wurde, wird dieses zusätzliche ideale Ziel nicht versucht. Wenn andernfalls der maxTimeoutsAfterResponse-Grenzwert für die Region erreicht wird oder das TotalMeasurementTimeoutInMilliseconds-Feldtimeout für alle Regionen verstrichen ist, gilt die Messung des Bereichs auch ohne diese ideale Anzahl erfolgreicher Antworten als abgeschlossen.

Der Standardwert ist 4, wenn PartyOption::RegionQualityMeasurementConfiguration nicht konfiguriert wurde.

maxRetriesWithNoResponse uint16_t

Die maximale Anzahl zusätzlicher Male, um eine anfängliche Messnachricht ohne Antworten erneut an einen Bereich zu senden, bevor die Region als nicht erreichbar eingestuft wird.

Mit diesem Wert wird die Gesamtzahl der zusätzlichen Versuche konfiguriert, die über den ersten hinausgeht, den die Parteibibliothek beim Wiederholen der ersten Schlanken Qualitätsmessungsnachricht an eine Region unternimmt, bevor diese Region als nicht verfügbar eingestuft wird. Wenn mindestens eine erfolgreiche Antwort vom Quality of Service-Beaconserver der Region empfangen wird, wird dieser Höchstwert nicht mehr verwendet, und stattdessen bestimmt das MaxTimeoutsAfterResponse-Feld die Anzahl der zulässigen Versuche für ein Timeout.

Größere maximale Wiederholungswerte sind toleranter gegenüber temporären Umgebungsproblemen wie Paketverlusten, was zu lasten ist, dass das Verlassen nicht erreichbarer Regionen länger dauert. Die absolute maximal zulässige Zeit zum Messen aller Bereiche wird durch den separaten Feldwert totalMeasurementTimeoutInMilliseconds begrenzt.

Der Standardwert ist 3, wenn PartyOption::RegionQualityMeasurementConfiguration nicht konfiguriert wurde.

maxTimeoutsAfterResponse uint16_t

Die maximale Anzahl von Messnachrichtenversuchen, die für eine Region, die zuvor geantwortet hat, ein Timeout hat, bevor der Netzwerkpfad als zu unzuverlässig eingestuft wird, um die Messung fortzusetzen.

Wenn mindestens eine erfolgreiche Antwort vom Quality of Service-Beaconserver einer Region empfangen wurde, bestimmt dieser Wert die Gesamtzahl der Timeoutversuche, die die Parteibibliothek beim Abrufen der Messergebnisse minRequiredSuccessfulResponses und idealNumberOfSuccessfulResponses für die Region zulässt.

Größere maximale Timeoutwerte sind toleranter gegenüber temporären Umgebungsproblemen wie Paketverlusten, da es möglicherweise länger dauert, um die Messung von Regionen mit diesen schlechten Qualitätsmerkmalen abzuschließen. Die absolute maximal zulässige Zeit zum Messen aller Bereiche wird durch den separaten Feldwert totalMeasurementTimeoutInMilliseconds begrenzt.

Der Standardwert ist 3, wenn PartyOption::RegionQualityMeasurementConfiguration nicht konfiguriert wurde.

Hinweise

Diese Struktur kann zusammen mit PartyOption::RegionQualityMeasurementConfiguration verwendet werden, um die aktuelle Konfiguration der Parteibibliothek über PartyManager::SetOption() bzw. PartyManager::GetOption() zu überschreiben oder abzufragen. Es konfiguriert das Verhalten auf niedriger Ebene des Prozesses zur Messung der Regionsqualität, der mit Zustandsänderungen von PartyRegionsChangedStateChange verknüpft ist.

Voraussetzungen

Header: Party.h

Weitere Informationen

Party-Mitglieder
PartyOption::RegionQualityMeasurementConfiguration
PartyRegionsChangedStateChange
PartyManager::SetOption
PartyManager::GetOption