Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Amazon GameLift ServersUDP-Ping-Beacons
UDP-Ping-Beacons bieten eine Möglichkeit, die Netzwerklatenz zwischen Player-Geräten und Amazon GameLift Servers Hosting-Standorten zu messen. Mit Ping-Beacons können Sie genaue Latenzdaten sammeln, um fundierte Entscheidungen über die Platzierung von Spieleservern zu treffen und die Spielersuche auf der Grundlage der Latenzanforderungen zu verbessern.
Wie funktionieren UDP-Ping-Beacons
Amazon GameLift Serversbietet feste UDP-Endpunkte (Ping-Beacons) an jedem Hosting-Standort, an dem Sie Spieleserver bereitstellen können. Da die meisten Spieleserver über UDP kommunizieren, liefert die Messung der Latenz mit UDP-Ping-Beacons genauere Ergebnisse als die Verwendung von ICMP-Pings. Netzwerkgeräte verarbeiten ICMP-Pakete oft anders als UDP-Pakete, was zu Latenzmessungen führen kann, die nicht die tatsächliche Leistung widerspiegeln, die Ihre Spieler erleben werden.
Mit UDP-Ping-Beacons kann dein Spielclient UDP-Nachrichten an diese Endpunkte senden und asynchrone Antworten empfangen. So erhältst du Latenzmessungen, die die tatsächlichen Verkehrsbedingungen im Spiel zwischen dem Gerät eines Spielers und potenziellen Hosting-Standorten besser wiedergeben. Die Endpunkte sind permanent und bleiben verfügbar, solange das Hosten von Spielen an diesem Amazon GameLift Servers Standort unterstützt wird.
Häufige Anwendungsfälle für UDP-Ping-Beacons
Du kannst UDP-Ping-Beacons auf verschiedene Arten verwenden, um das Netzwerkerlebnis deines Spiels zu optimieren.
Auswahl optimaler Hosting-Standorte
Erfassen Sie Latenzdaten aus verschiedenen geografischen Regionen, um die besten Primär- und Backup-Standorte für das Hosten von Spieleservern für Ihre Spielerbasis zu ermitteln.
Platzieren von Spielsitzungen auf der Grundlage der Spielerlatenz
Füge Daten zur Spielerlatenz hinzu, wenn du neue Spielsitzungen anforderst, damit du Orte auswählen kannst, die die niedrigste Latenz bieten.
Optimieren Sie das Matchmaking auf der Grundlage der Latenz
Geben Sie Daten zur Spielerlatenz an, wenn Sie Matchmaking anfragen, um Spielern mit ähnlichen Latenzprofilen zu helfen und Spielsitzungen an optimalen Orten für passende Spieler zu platzieren.
Anmerkung
Wenn du Anfragen zur Spielerzuweisung erstellst, solltest du keine Latenzinformationen an Standorte weitergeben, an denen du keine Flotten hast. Wenn ihr das tut, versucht Amazon GameLift Servers vielleicht, die Spielsitzung an Orten zu platzieren, an denen es keine Flottenkapazität gibt, was dazu führen kann, dass Spielerzuweisungsanfragen fehlschlagen.
Beacon-Endpunkte abrufen
Verwenden Sie den API-Vorgang, um Domänen- und Portinformationen für Ping-Beacons für Amazon GameLift Servers Standorte abzurufen. ListLocations Welche Speicherorte von dieser API zurückgegeben werden, hängt von den Speicherorten ab, die AWS-Region Sie beim Aufrufen der API angegeben haben (oder von Ihrer Standardregion, falls Sie keine angeben). Wenn Sie anrufen von:
-
Eine Heimatregion einer Flotte, die mehrere Standorte unterstützt: Die API gibt Informationen für alle Hosting-Standorte zurück
-
Eine Heimatregion einer Flotte, die einen einzelnen Standort unterstützt: Die API gibt Informationen für diesen Standort zurück
Beachten Sie, dass die API einen Fehler zurückgibt, wenn Sie diese API über einen Standort aufrufen, der nur ein entfernter Standort in einer Flotte mit mehreren Standorten sein kann, da diese Art von Standort keinen Service-Endpunkt hat.
In der Tabelle der unterstützten Standorte finden Sie die HeimatregionenUnterstützte AWS Standorte, in denen Flotten mit einem oder mehreren Standorten unterstützt werden.
Beispiel
aws gamelift list-locations --region ap-northeast-2
Dies AWS-Region unterstützt Flotten mit mehreren Standorten, weshalb mehrere Standorte zurückgegeben werden. Hier ist ein Beispiel für einen der Rückgabewerte:
[...]
{
"LocationName": "ap-northeast-1",
"PingBeacon": {
"UDPEndpoint": {
"Domain": "gamelift-ping.ap-northeast-1.api.aws",
"Port": 7770
}
}
}
Wichtig
Zwischenspeichern Sie die Ping-Beacon-Informationen, anstatt ListLocations
sie vor jeder Latenzmessung aufzurufen. Die Domain- und Portinformationen sind statisch und die API ist nicht für Anfragen mit hohem Volumen konzipiert.
Implementierung von Latenzmessungen
Beachten Sie bei der Implementierung von Latenzmessungen mithilfe von UDP-Ping-Beacons die folgenden bewährten Methoden:
-
Speichern Sie Ping-Beacon-Informationen mit einem der folgenden Ansätze:
-
Kodieren Sie die Endpunkte in Ihrem Spielclient fest.
-
Zwischenspeichern Sie die Informationen in Ihrem Spiel-Backend.
-
Implementieren Sie einen Mechanismus zur regelmäßigen Aktualisierung (täglich/wöchentlich), um die Informationen zu aktualisieren.
-
-
Senden Sie UDP-Ping-Nachrichten:
-
Fügen Sie in den Nachrichtentext ein, was Sie wollen, solange er nicht leer ist und Sie Nachrichten unter der maximalen Größe von 300 Byte halten.
-
Beachten Sie für jeden Standort die folgenden Ratenbegrenzungen:
-
3 Transaktionen pro Sekunde (TPS) pro eindeutiger Kombination aus IP-Adresse und Port des Absenders
-
1000 TPS pro eindeutiger Absender-IP-Adresse
-
-
-
Latenz berechnen:
-
Senden Sie mehrere Pings an jeden Standort, um die durchschnittliche Latenz zu berechnen.
-
Erwägen Sie, gleichzeitige Pings an mehrere Standorte zu senden, um schnellere Ergebnisse zu erzielen.
-
Verwenden Sie bei Bedarf die Wiederholungslogik, um neue Pakete für jedes Paket zu senden, das nicht innerhalb kurzer Zeit (normalerweise 1—3 Sekunden) zurückgegeben wurde, da bei UDP die Zustellung nicht zu 100% garantiert ist.
-
Berechnet den Zeitunterschied zwischen dem Senden einer Nachricht und dem Empfangen der Antwort.
-
Wenn ein großer Teil der UDP-Pings an einen Standort konsistent keine Antwort erhält, berechnen Sie die Latenz, indem Sie ICMP-Pings zu unseren Amazon GameLift ServersStandarddienstendpunkten als Fallback verwenden.
-
Tipp
Wir empfehlen, dass Sie Port 7770 überall dort angeben, wo Sie die Liste der Ports dokumentieren, die Ihre Player in ihrem lokalen Netzwerk geöffnet haben müssen. Dies ist ein weiterer Grund, warum Sie einen Fallback zur Messung der Latenz (z. B. mit ICMP) haben sollten, falls dieser Port blockiert ist.
Codebeispiele
Hier sind einige einfache Beispiele, die zeigen, wie man UDP-Pings sendet und die Latenz berechnet.