View a markdown version of this page

C++-Server-SDK 5.x für Amazon-Server GameLift -- Aktionen - GameLift Amazon-Server

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.

C++-Server-SDK 5.x für Amazon-Server GameLift -- Aktionen

Verwenden Sie die Server-SDK 5.x-Referenz, um Ihr Multiplayer-Spiel für das Hosting zu integrieren. Amazon GameLift Servers Hinweise zum Integrationsprozess finden Sie unterAddition GameLift Amazon-Server mit dem Server-SDK auf deinen Spieleserver.

Anmerkung

In diesem Thema wird die Amazon GameLift Servers C++-API beschrieben, die Sie beim Erstellen mit der C++-Standardbibliothek (std) verwenden können. Insbesondere bezieht sich diese Dokumentation auf Code, den Sie mit der -DDGAMELIFT_USE_STD=1 Option kompilieren.

C++-Server-SDK 5.x für Amazon-Server GameLift -- Datentypen

GetSdkVersion()

Gibt die aktuelle Versionsnummer des SDK zurück, das in den Serverprozess integriert ist.

Syntax

Aws::GameLift::AwsStringOutcome Server::GetSdkVersion();

Rückgabewert

War der Aufruf erfolgreich, gibt die Funktion die aktuelle SDK-Version als AwsStringOutcome-Objekt zurück. Das zurückgegebene Objekt enthält die Versionsnummer (Beispiel5.0.0). Wenn die Funktion nicht erfolgreich ausgeführt wird, wird eine Fehlermeldung zurückgegeben.

Beispiel

Aws::GameLift::AwsStringOutcome SdkVersionOutcome = Aws::GameLift::Server::GetSdkVersion();

InitMetrics()

Initialisiert das Messobjektsystem für die Erfassung und Berichterstattung von Serverleistungsdaten. Um optimale Ergebnisse zu erzielen, rufen Sie diese Methode vorher InitSDK() auf, um die Erfassung von Messwerten während der SDK-Initialisierung zu aktivieren.

Syntax

Aws::GameLift::GenericOutcome InitMetrics(); Aws::GameLift::GenericOutcome InitMetrics(const Aws::GameLift::Server::MetricsParameters &metricsParameters);

Parameters

MetricsParameters (optional)

Konfigurationsparameter für die Erfassung von Metriken. Wenn nicht angegeben, werden Standardwerte verwendet, die durch Umgebungsvariablen überschrieben werden können.

Rückgabewert

Bei Erfolg wird ein GenericOutcome Objekt zurückgegeben, das auf Erfolg hinweist. Wenn die Funktion nicht erfolgreich ausgeführt wird, wird eine Fehlermeldung zurückgegeben.

Beispiel

// Initialize with default parameters (uses environment variables if available) // Defaults: localhost:8125 for StatsD, localhost:8126 for crash reporter // FlushInterval: 10000ms, MaxPacketSize: 512 bytes Aws::GameLift::GenericOutcome outcome = Aws::GameLift::Server::InitMetrics(); if (outcome.IsSuccess()) { // Metrics system initialized successfully } // Initialize with custom parameters Aws::GameLift::Server::MetricsParameters metricsParams("localhost", 8125, "crash-host", 8126, 5000, 1024); Aws::GameLift::GenericOutcome customOutcome = Aws::GameLift::Server::InitMetrics(metricsParams); if (customOutcome.IsSuccess()) { // Metrics system initialized with custom parameters }

InitCustomLogger()

Leitet die Protokollausgabe des Server-SDK an einen benutzerdefinierten Protokollierungs-Callback weiter, den Sie anstelle der standardmäßigen Datei- und Konsolenprotokollierung bereitstellen. Verwende diesen Vorgang, um die SDK-Protokolle des Servers in das Protokollierungssystem deines Spielservers zu integrieren. Beispielsweise kann ein Unreal Engine-Spieleserver die SDK-Protokolle durch das Unreal Engine-Protokollierungssystem () UE_LOG weiterleiten.

Die besten Ergebnisse erzielen Sie, wenn Sie diesen Vorgang vorher aufrufen, InitSDK() damit Ihr Callback von Anfang an eine SDK-Initialisierungsdiagnose (Verbindungsaufbau, Logger-Initialisierung und InitSDK() Fehler) erhält. Das Anrufen InitCustomLogger() danach InitSDK() ist ebenfalls sicher. Ab diesem Zeitpunkt wechselt die Log-Ausgabe zu Ihrem Callback. Nachrichten, die vor dem Anruf protokolliert wurden, werden in den Standard-Logger übertragen.

Sie können diesen Vorgang höchstens einmal aufrufen. Nachfolgende Aufrufe kehren zurück ALREADY_INITIALIZED und ändern den Logger nicht, der bereits registriert ist.

Syntax

Aws::GameLift::GenericOutcome InitCustomLogger(const Aws::GameLift::Server::CustomLoggerConfiguration &logParameters);

Parameters

CustomLoggerConfiguration

Die Konfiguration für den benutzerdefinierten Logger, einschließlich der Log-Callback-Funktion, eines optionalen Benutzerdaten-Kontextzeigers und der Mindestprotokollebene, die gesendet werden muss. Der Callback darf nicht seinnull; der Vorgang lehnt einen Rückruf mit ab. null BAD_REQUEST_EXCEPTION

Rückgabewert

Wenn der Vorgang erfolgreich ist, gibt er ein GenericOutcome Objekt zurück, das den Erfolg anzeigt. Schlägt der Vorgang fehl, enthält das Ergebnis eine Fehlermeldung mit einem Fehlercode, z. B. BAD_REQUEST_EXCEPTION wenn der Rückruf erfolgt ist null oder ALREADY_INITIALIZED wenn ein Logger bereits registriert ist.

Beispiel

// Implement a log callback that forwards SDK log messages to your logging system. void OnGameLiftLog(Aws::GameLift::Server::LogLevel level, const char* message, void* userData) { // Route the message to your game server's logging system. // The message pointer is valid only for the duration of this call; copy it if you // need to retain it. std::cout << message << std::endl; } // Configure and initialize the custom logger before calling InitSDK. Aws::GameLift::Server::CustomLoggerConfiguration logParameters(OnGameLiftLog, nullptr, Aws::GameLift::Server::LogLevel::Info); Aws::GameLift::GenericOutcome loggerOutcome = Aws::GameLift::Server::InitCustomLogger(logParameters); if (loggerOutcome.IsSuccess()) { // Custom logger initialized successfully }

InitSDK()

Initialisiert das Amazon GameLift Servers-SDK. Rufen Sie diese Methode beim Start auf, bevor Sie andere Initialisierungsschritte ausführen, die sich auf Folgendes beziehen. Amazon GameLift Servers Diese Aktion liest Serverparameter aus der Host-Umgebung, um die Kommunikation zwischen dem Spielserverprozess und dem Amazon GameLift Servers Dienst einzurichten. Sie verwendet ein Idempotenz-Token, sodass du diesen Aufruf bedenkenlos wiederholen kannst, wenn er fehlschlägt.

Wenn der Spieleserver-Build ohne den Amazon GameLift Servers Agenten in einer Amazon GameLift Servers Anywhere-Flotte oder Containerflotte eingesetzt werden soll, rufen Sie auf InitSDK() und geben Sie eine Reihe von Serverparametern an.

Syntax

Server::InitSDKOutcome Server::initSdkOutcome = InitSDK();

Rückgabewert

Gibt ein InitSDK-Ergebnis Objekt zurück, das angibt, ob der Serverprozess aufrufbereit istProcessReady().

Beispiel

//Call InitSDK to establish a local connection with the Amazon GameLift Servers Agent to enable further communication. Aws::GameLift::Server::InitSDKOutcome initSdkOutcome = Aws::GameLift::Server::InitSDK();

InitSDK()

Initialisiert das Amazon GameLift Servers-SDK. Rufen Sie diese Methode beim Start vor allen anderen Initialisierungsschritten auf, die sich auf Folgendes beziehenAmazon GameLift Servers. Diese Aktion erfordert eine Reihe von Serverparametern, um die Kommunikation zwischen dem Spielserverprozess und dem Amazon GameLift Servers Dienst einzurichten. Es verwendet ein Idempotenz-Token, sodass du diesen Aufruf bedenkenlos wiederholen kannst, wenn er fehlschlägt.

Wenn der Spieleserver-Build auf einer Amazon GameLift Servers verwalteten EC2-Flotte oder einer Amazon GameLift Servers Anywhere-Flotte oder Containerflotte mit dem Amazon GameLift Servers Agenten bereitgestellt wird, rufen Sie InitSDK() ohne Serverparameter auf.

Syntax

Server::InitSDKOutcome Server::initSdkOutcome = InitSDK(serverParameters);

Parameters

ServerParameters

Um einen Spieleserver auf einer Amazon GameLift Servers Anywhere-Flotte zu initialisieren, konstruieren Sie ein ServerParameters Objekt mit den folgenden Informationen:

  • Die URL des, die für die Verbindung zu Ihrem Spieleserver WebSocket verwendet wird.

  • Die ID des Prozesses, der zum Hosten deines Spieleservers verwendet wird.

  • Die ID des Computers, auf dem deine Spieleserverprozesse gehostet werden.

  • Die ID der Amazon GameLift Servers Flotte, die deine Amazon GameLift Servers Anywhere-Rechenleistung enthält.

  • Das durch den Amazon GameLift Servers Vorgang generierte Autorisierungstoken.

Rückgabewert

Gibt ein InitSDK-Ergebnis Objekt zurück, das angibt, ob der Serverprozess aufrufbereit istProcessReady().

Anmerkung

Wenn Aufrufe von für Spiele-Builds, die auf Anywhere-Flotten bereitgestellt werden, fehlschlagen, überprüfen Sie den ServerSdkVersion Parameter, der beim Erstellen der Build-Ressource verwendet wurde. InitSDK() Sie müssen diesen Wert explizit auf die verwendete Server-SDK-Version festlegen. Der Standardwert für diesen Parameter ist 4.x, was nicht kompatibel ist. Um dieses Problem zu lösen, erstellen Sie einen neuen Build und stellen Sie ihn einer neuen Flotte zur Verfügung.

Beispiel

Amazon GameLift ServersIrgendwo, zum Beispiel

//Define the server parameters std::string websocketUrl = "wss://us-west-1.api.amazongamelift.com"; std::string processId = "PID1234"; std::string fleetId = "arn:aws:gamelift:us-west-1:111122223333:fleet/fleet-9999ffff-88ee-77dd-66cc-5555bbbb44aa"; std::string hostId = "HardwareAnywhere"; std::string authToken = "1111aaaa-22bb-33cc-44dd-5555eeee66ff"; Aws::GameLift::Server::Model::ServerParameters serverParameters = Aws::GameLift::Server::Model::ServerParameters(webSocketUrl, authToken, fleetId, hostId, processId); //Call InitSDK to establish a local connection with the Amazon GameLift Servers Agent to enable further communication. Aws::GameLift::Server::InitSDKOutcome initSdkOutcome = Aws::GameLift::Server::InitSDK(serverParameters);

ProcessReady()

BenachrichtigtAmazon GameLift Servers, dass der Serverprozess bereit ist, Spielsitzungen zu hosten. Ruft diese Methode nach dem Aufruf aufInitSDK(). Diese Methode sollte nur einmal pro Prozess aufgerufen werden.

Syntax

GenericOutcome ProcessReady(const Aws::GameLift::Server::ProcessParameters &processParameters);

Parameters

processParameters

Ein ProcessParameters-Objekt, das die folgenden Informationen über den Serverprozess mitteilt:

  • Namen der im Spielservercode implementierten Callback-Methoden, die der Amazon GameLift Servers Dienst aufruft, um mit dem Serverprozess zu kommunizieren.

  • Die Portnummer, auf der der Serverprozess horcht.

  • Pfad zu beliebigen spielsitzungsspezifischen Dateien, die Amazon GameLift Servers erfassen und speichern soll.

Rückgabewert

Gibt ein generisches Ergebnis zurück, das aus Erfolg oder Misserfolg mit einer Fehlermeldung besteht.

Beispiel

Dieses Beispiel veranschaulicht die Implementierung des ProcessReady()-Aufrufs und der Delegate-Funktion.

// Set parameters and call ProcessReady std::string serverLog("serverOut.log"); // Example of a log file written by the game server std::vector<std::string> logPaths; logPaths.push_back(serverLog); int listenPort = 9339; Aws::GameLift::Server::ProcessParameters processReadyParameter = Aws::GameLift::Server::ProcessParameters( std::bind(&Server::onStartGameSession, this, std::placeholders::_1), std::bind(&Server::onProcessTerminate, this), std::bind(&Server::OnHealthCheck, this), std::bind(&Server::OnUpdateGameSession, this), listenPort, Aws::GameLift::Server::LogParameters(logPaths) ); Aws::GameLift::GenericOutcome outcome = Aws::GameLift::Server::ProcessReady(processReadyParameter); // Implement callback functions void Server::onStartGameSession(Aws::GameLift::Model::GameSession myGameSession) { // game-specific tasks when starting a new game session, such as loading map GenericOutcome outcome = Aws::GameLift::Server::ActivateGameSession (maxPlayers); } void Server::onProcessTerminate() { // game-specific tasks required to gracefully shut down a game session, // such as notifying players, preserving game state data, and other cleanup GenericOutcome outcome = Aws::GameLift::Server::ProcessEnding(); } bool Server::onHealthCheck() { bool health; // complete health evaluation within 60 seconds and set health return health; }

ProcessReadyAsync()

Benachrichtigt den Amazon GameLift Servers-Service, dass der Serverprozess zum Hosten von Spielsitzungen bereit ist. Diese Methode sollte aufgerufen werden, nachdem der Serverprozess bereit ist, eine Spielsitzung zu veranstalten. Die Parameter geben die Namen der Callback-Funktionen Amazon GameLift Servers an, die unter bestimmten Umständen aufgerufen werden sollen. Diese Funktionen müssen im Spiel-Servercode implementiert sein.

Dieser Aufruf ist asynchroner. Wenn Sie einen synchronen Aufruf durchführen möchten, verwenden Sie ProcessReady(). Weitere Details finden Sie unter Initialisieren Sie den Serverprozess.

Syntax

GenericOutcomeCallable ProcessReadyAsync( const Aws::GameLift::Server::ProcessParameters &processParameters);

Parameters

processParameters

Ein ProcessParameters-Objekt, das die folgenden Informationen über den Serverprozess mitteilt:

  • Namen der im Spielservercode implementierten Callback-Methoden, die der Amazon GameLift Servers Dienst aufruft, um mit dem Serverprozess zu kommunizieren.

  • Die Portnummer, auf der der Serverprozess horcht.

  • Pfad zu beliebigen spielsitzungsspezifischen Dateien, die Amazon GameLift Servers erfassen und speichern soll.

Erforderlich: Ja

Rückgabewert

Gibt ein generisches Ergebnis zurück, das aus Erfolg oder Misserfolg mit einer Fehlermeldung besteht.

Beispiel

// Set parameters and call ProcessReady std::string serverLog("serverOut.log"); // This is an example of a log file written by the game server std::vector<std::string> logPaths; logPaths.push_back(serverLog); int listenPort = 9339; Aws::GameLift::Server::ProcessParameters processReadyParameter = Aws::GameLift::Server::ProcessParameters(std::bind(&Server::onStartGameSession, this, std::placeholders::_1), std::bind(&Server::onProcessTerminate, this), std::bind(&Server::OnHealthCheck, this), std::bind(&Server::OnUpdateGameSession, this), listenPort, Aws::GameLift::Server::LogParameters(logPaths)); Aws::GameLift::GenericOutcomeCallable outcome = Aws::GameLift::Server::ProcessReadyAsync(processReadyParameter); // Implement callback functions void onStartGameSession(Aws::GameLift::Model::GameSession myGameSession) { // game-specific tasks when starting a new game session, such as loading map GenericOutcome outcome = Aws::GameLift::Server::ActivateGameSession (maxPlayers); } void onProcessTerminate() { // game-specific tasks required to gracefully shut down a game session, // such as notifying players, preserving game state data, and other cleanup GenericOutcome outcome = Aws::GameLift::Server::ProcessEnding(); } bool onHealthCheck() { // perform health evaluation and complete within 60 seconds return health; }

ProcessEnding()

BenachrichtigtAmazon GameLift Servers, dass der Serverprozess beendet wird. Ruft diese Methode nach allen anderen Bereinigungsaufgaben auf (einschließlich dem Beenden der aktiven Spielsitzung) und bevor der Prozess beendet wird. Je nach Ergebnis von wird der ProcessEnding() Prozess mit Erfolg (0) oder Fehler (-1) beendet und ein Flottenereignis generiert. Wenn der Prozess mit einem Fehler beendet wird, wird das Flottenereignis generiert. SERVER_PROCESS_TERMINATED_UNHEALTHY

Syntax

Aws::GameLift::GenericOutcome processEndingOutcome = Aws::GameLift::Server::ProcessEnding();

Rückgabewert

Gibt ein generisches Ergebnis zurück, das aus Erfolg oder Misserfolg mit einer Fehlermeldung besteht.

Beispiel

In diesem Beispiel wird der Serverprozess Destroy() vor dem Beenden des Serverprozesses mit einem Erfolgs- oder Fehler-Exitcode aufgerufenProcessEnding().

Aws::GameLift::GenericOutcome processEndingOutcome = Aws::GameLift::Server::ProcessEnding(); Aws::GameLift::Server::Destroy(); // Exit the process with success or failure if (processEndingOutcome.IsSuccess()) { exit(0); } else { cout << "ProcessEnding() failed. Error: " << processEndingOutcome.GetError().GetErrorMessage(); exit(-1); }

ActivateGameSession()

BenachrichtigtAmazon GameLift Servers, dass der Serverprozess eine Spielsitzung aktiviert hat und nun bereit ist, Spielerverbindungen zu empfangen. Diese Aktion sollte nach der Initialisierung der Spielsitzung als Teil der onStartGameSession() Callback-Funktion aufgerufen werden.

Syntax

Aws::GameLift::GenericOutcome activateGameSessionOutcome = Aws::GameLift::Server::ActivateGameSession();

Rückgabewert

Gibt ein generisches Ergebnis zurück, das aus Erfolg oder Misserfolg mit einer Fehlermeldung besteht.

Beispiel

Dieses Beispiel zeigt ActivateGameSession() call als Teil der onStartGameSession() Delegate-Funktion.

void onStartGameSession(Aws::GameLift::Model::GameSession myGameSession) { // game-specific tasks when starting a new game session, such as loading map GenericOutcome outcome = Aws::GameLift::Server::ActivateGameSession(); }

UpdatePlayerSessionCreationPolicy()

Aktualisiert die Kapazität der aktuellen Spielsitzung zur Aufnahme neuer Spielersitzungen. Eine Spielsitzung kann so eingerichtet werden, dass Sie alle neuen Spieler-Sitzungen akzeptiert oder ablehnt.

Syntax

GenericOutcome UpdatePlayerSessionCreationPolicy(Aws::GameLift::Model::PlayerSessionCreationPolicy newPlayerSessionPolicy);

Parameters

Spieler CreationSessionPolicy

Typ: PlayerSessionCreationPolicy Aufzählungen Aufzählungswert.

Erforderlich: Ja

Rückgabewert

Gibt ein generisches Ergebnis zurück, das aus Erfolg oder Misserfolg mit einer Fehlermeldung besteht.

Beispiel

In diesem Beispiel werden die Richtlinien für die aktuelle Spielsitzung für neue Spieler so festgelegt, dass alle Spieler akzeptiert werden.

Aws::GameLift::GenericOutcome outcome = Aws::GameLift::Server::UpdatePlayerSessionCreationPolicy(Aws::GameLift::Model::PlayerSessionCreationPolicy::ACCEPT_ALL);

GetGameSessionId()

Ruft die ID der Spielsitzung ab, die vom aktiven Serverprozess gehostet wird.

Für inaktive Prozesse, die nicht mit einer Spielsitzung aktiviert werden, gibt der Aufruf a GameLiftError zurück.

Syntax

AwsStringOutcome GetGameSessionId()

Parameters

Diese Aktion hat keine Parameter.

Rückgabewert

War der Aufruf erfolgreich, gibt die Funktion die Spielsitzungs-ID als AwsStringOutcome-Objekt zurück. Wenn die Funktion nicht erfolgreich ausgeführt wird, wird eine Fehlermeldung zurückgegeben.

Für Prozesse im Leerlauf, die nicht während einer Spielsitzung aktiviert werden, gibt der Aufruf Success = True und GameSessionId = zurück"".

Beispiel

Aws::GameLift::AwsStringOutcome sessionIdOutcome = Aws::GameLift::Server::GetGameSessionId();

GetTerminationTime()

Gibt die Zeit zurück, für die das Herunterfahren eines Serverprozesses geplant ist (wenn eine Zeit zum Beenden verfügbar ist). Ein Serverprozess ergreift eine Aktion, nachdem er einen onProcessTerminate() Rückruf von Amazon GameLift Servers erhalten hat. Amazon GameLift Serversruft onProcessTerminate() aus den folgenden Gründen auf:

  • Wenn der Serverprozess einen schlechten Zustand gemeldet hat oder nicht darauf reagiert hatAmazon GameLift Servers.

  • Wenn die Instance während eines Scale-Down-Ereignisses beendet wird.

  • Wenn eine Instance aufgrund einer Spot-Instance-Unterbrechung beendet wird. Eine Warteschlange für Spot-Instances erstellen

Syntax

AwsDateTimeOutcome GetTerminationTime()

Rückgabewert

Bei Erfolg wird der Zeitpunkt der Beendigung als Objekt AwsDateTimeOutcome zurückgegeben. Der Wert ist die Abschlusszeit, ausgedrückt in seither verstrichenen Ticks. 0001 00:00:00 Beispielsweise entspricht der Wert für Datum und Uhrzeit den 2020-09-13 12:26:40 -000Z Ticks. 637355968000000000 Wenn keine Kündigungszeit verfügbar ist, wird eine Fehlermeldung zurückgegeben.

Wenn der Prozess keinen ProcessParameters.OnProcessTerminate () -Callback erhalten hat, wird eine Fehlermeldung zurückgegeben. Weitere Hinweise zum Herunterfahren eines Serverprozesses finden Sie unter. Reagieren Sie auf eine Benachrichtigung zum Herunterfahren des Serverprozesses

Beispiel

Aws::GameLift::AwsLongOutcome TermTimeOutcome = Aws::GameLift::Server::GetTerminationTime();

AcceptPlayerSession()

BenachrichtigtAmazon GameLift Servers, dass ein Spieler mit der angegebenen Player-Sitzungs-ID eine Verbindung zum Serverprozess hergestellt hat und überprüft werden muss. Amazon GameLift Serversverifiziert, dass die Spielersitzungs-ID gültig ist. Amazon GameLift ServersÄndert nach der Validierung der Spielersitzung den Status des Spielerplatzes von RESERVIERT auf AKTIV.

Syntax

GenericOutcome AcceptPlayerSession(String playerSessionId)

Parameters

Spieler SessionId

Eindeutige IDAmazon GameLift Servers, die beim Erstellen einer neuen Spielersitzung ausgestellt wird.

Rückgabewert

Gibt ein generisches Ergebnis zurück, das aus Erfolg oder Misserfolg mit einer Fehlermeldung besteht.

Beispiel

In diesem Beispiel wird eine Verbindungsanforderung verarbeitet, die das Überprüfen und Ablehnen ungültiger Spielersitzungs-IDs beinhaltet.

void ReceiveConnectingPlayerSessionID (Connection& connection, const std::string& playerSessionId) { Aws::GameLift::GenericOutcome connectOutcome = Aws::GameLift::Server::AcceptPlayerSession(playerSessionId); if(connectOutcome.IsSuccess()) { connectionToSessionMap.emplace(connection, playerSessionId); connection.Accept(); } else { connection.Reject(connectOutcome.GetError().GetMessage(); } }

RemovePlayerSession()

BenachrichtigtAmazon GameLift Servers, dass ein Spieler die Verbindung zum Serverprozess getrennt hat. Amazon GameLift ServersÄndert daraufhin den Spielerplatz auf „Verfügbar“.

Syntax

GenericOutcome RemovePlayerSession(String playerSessionId)

Parameters

playerSessionId

Eindeutige IDAmazon GameLift Servers, die beim Erstellen einer neuen Spielersitzung ausgestellt wird.

Rückgabewert

Gibt ein generisches Ergebnis zurück, das aus Erfolg oder Misserfolg mit einer Fehlermeldung besteht.

Beispiel

Aws::GameLift::GenericOutcome disconnectOutcome = Aws::GameLift::Server::RemovePlayerSession(playerSessionId);

DescribePlayerSessions()

Ruft Spielersitzungsdaten ab, einschließlich Einstellungen, Sitzungsmetadaten und Spielerdaten. Verwende diese Methode, um Informationen über Folgendes zu erhalten:

  • Eine Einzelspieler-Session

  • Alle Spielersitzungen in einer Spielsitzung

  • Alle Spielersitzungen, die mit einer einzigen Spieler-ID verknüpft sind

Syntax

DescribePlayerSessionsOutcome DescribePlayerSessions(DescribePlayerSessionsRequest describePlayerSessionsRequest)

Parameters

DescribePlayerSessionsRequest

Ein DescribePlayerSessionsRequest Objekt, das beschreibt, welche Spielersitzungen abgerufen werden sollen.

Rückgabewert

Wenn sie erfolgreich ausgeführt wird, gibt die Funktion ein DescribePlayerSessionsOutcome-Objekt mit einer Menge von Spielersitzungsobjekten zurück, die den Anforderungsparametern entsprechen.

Beispiel

In diesem Beispiel werden alle Spielersitzungen angefordert, die aktiv mit einer bestimmten Spielsitzung verbunden sind. Wenn Sie den Grenzwert weglassen NextToken und auf 10 setzen, werden die Sitzungsdatensätze der ersten 10 Spieler Amazon GameLift Servers zurückgegeben, die der Anfrage entsprechen.

// Set request parameters Aws::GameLift::Server::Model::DescribePlayerSessionsRequest request; request.SetPlayerSessionStatusFilter(Aws::GameLift::Server::Model::PlayerSessionStatusMapper::GetNameForPlayerSessionStatus(Aws::GameLift::Server::Model::PlayerSessionStatus::Active)); request.SetLimit(10); request.SetGameSessionId("the game session ID"); // can use GetGameSessionId() // Call DescribePlayerSessions Aws::GameLift::DescribePlayerSessionsOutcome playerSessionsOutcome = Aws::GameLift::Server::DescribePlayerSessions(request);

StartMatchBackfill()

Sendet eine Anforderung zur Suche nach neuen Spielern für offene Slots in einer Spielsitzung, die mit FlexMatch erstellt wurde. Weitere Informationen finden Sie unter Auffüllfunktion FlexMatch.

Diese Aktion ist asynchron. Wenn neue Spieler gefunden werden, Amazon GameLift Servers werden mithilfe der Callback-Funktion aktualisierte Matchmaker-Daten bereitgestellt. OnUpdateGameSession()

Ein Serverprozess kann immer nur eine aktive Match-Backfill-Anforderung haben. Um eine neue Anforderung zu senden, rufen Sie zuerst StopMatchBackfill() auf, um die ursprüngliche Anforderung abzubrechen.

Syntax

StartMatchBackfillOutcome StartMatchBackfill (StartMatchBackfillRequest startBackfillRequest);

Parameters

StartMatchBackfillRequest

Ein StartMatchBackfillRequest Objekt, das die folgenden Informationen übermittelt:

  • Eine Ticket-ID für die Zuordnung zur Backfill-Anforderung. Diese Information ist optional. Wenn keine ID angegeben wird, Amazon GameLift Servers wird eine generiert.

  • Der Matchmaker, an den die Anfrage gesendet werden soll. Der vollständige ARN der Konfiguration ist erforderlich. Dieser Wert ist in den Matchmaker-Daten der Spielsitzung enthalten.

  • Die ID der Spielsitzung, die aufgefüllt werden soll.

  • Die verfügbaren Matchmaking-Daten für die aktuellen Spieler der Spielsitzung.

Rückgabewert

Gibt ein StartMatchBackfillOutcome Objekt mit der Ticket-ID für das Auffüllen des Spiels oder einen Fehler mit einer Fehlermeldung zurück.

Beispiel

// Build a backfill request std::vector<Player> players; Aws::GameLift::Server::Model::StartMatchBackfillRequest startBackfillRequest; startBackfillRequest.SetTicketId("1111aaaa-22bb-33cc-44dd-5555eeee66ff"); // optional, autogenerated if not provided startBackfillRequest.SetMatchmakingConfigurationArn("arn:aws:gamelift:us-west-2:111122223333:matchmakingconfiguration/MyMatchmakerConfig"); //from the game session matchmaker data startBackfillRequest.SetGameSessionArn("the game session ARN"); // can use GetGameSessionId() startBackfillRequest.SetPlayers(players); // from the game session matchmaker data // Send backfill request Aws::GameLift::StartMatchBackfillOutcome backfillOutcome = Aws::GameLift::Server::StartMatchBackfill(startBackfillRequest); // Implement callback function for backfill void Server::OnUpdateGameSession(Aws::GameLift::Server::Model::GameSession gameSession, Aws::GameLift::Server::Model::UpdateReason updateReason, std::string backfillTicketId) { // handle status messages // perform game-specific tasks to prep for newly matched players }

StopMatchBackfill()

Storniert eine aktive Match-Backfill-Anfrage. Weitere Informationen finden Sie unter Auffüllfunktion FlexMatch.

Syntax

GenericOutcome StopMatchBackfill (StopMatchBackfillRequest stopBackfillRequest);

Parameters

StopMatchBackfillRequest

Ein StopMatchBackfillRequest Objekt, das das zu stornierende Matchmaking-Ticket identifiziert:

  • Die der Backfill-Anfrage zugewiesene Ticket-ID.

  • Der Matchmaker, an den die Backfill-Anfrage gesendet wurde.

  • Die mit der Backfill-Anfrage verknüpfte Spielsitzung.

Rückgabewert

Gibt ein generisches Ergebnis zurück, das aus Erfolg oder Misserfolg mit einer Fehlermeldung besteht.

Beispiel

// Set backfill stop request parameters Aws::GameLift::Server::Model::StopMatchBackfillRequest stopBackfillRequest; stopBackfillRequest.SetTicketId("1111aaaa-22bb-33cc-44dd-5555eeee66ff"); stopBackfillRequest.SetGameSessionArn("the game session ARN"); // can use GetGameSessionId() stopBackfillRequest.SetMatchmakingConfigurationArn("arn:aws:gamelift:us-west-2:111122223333:matchmakingconfiguration/MyMatchmakerConfig"); // from the game session matchmaker data Aws::GameLift::GenericOutcome stopBackfillOutcome = Aws::GameLift::Server::StopMatchBackfill(stopBackfillRequest);

GetComputeCertificate()

Ruft den Pfad zu dem TLS-Zertifikat ab, das zum Verschlüsseln der Netzwerkverbindung zwischen Ihrer Amazon GameLift Servers Anywhere-Rechenressource und verwendet wird. Amazon GameLift Servers Sie können den Zertifikatspfad verwenden, wenn Sie Ihr Computergerät bei einer Amazon GameLift Servers Anywhere-Flotte registrieren. Weitere Informationen finden Sie unter RegisterCompute.

Syntax

GetComputeCertificateOutcome Server::GetComputeCertificate()

Rückgabewert

Gibt eine GetComputeCertificateOutcome zurück.

Beispiel

Aws::GameLift::GetComputeCertificateOutcome certificate = Aws::GameLift::Server::GetComputeCertificate();

GetFleetRoleCredentials()

Ruft IAM-Rollenanmeldedaten ab, die Amazon GameLift Servers zur Interaktion mit anderen autorisieren. AWS-Services Weitere Informationen finden Sie unter Verbinde deine GameLift Amazon-Server gehosteter Spieleserver auf anderen AWS Ressourcen.

Syntax

GetFleetRoleCredentialsOutcome GetFleetRoleCredentials(GetFleetRoleCredentialsRequest request);

Parameters

GetFleetRoleCredentialsRequest

Rückgabewert

Gibt ein GetFleetRoleCredentialsOutcome-Objekt zurück.

Beispiel

// form the fleet credentials request Aws::GameLift::Server::Model::GetFleetRoleCredentialsRequest getFleetRoleCredentialsRequest; getFleetRoleCredentialsRequest.SetRoleArn("arn:aws:iam::123456789012:role/service-role/exampleGameLiftAction"); Aws::GameLift::GetFleetRoleCredentialsOutcome credentials = Aws::GameLift::Server::GetFleetRoleCredentials(getFleetRoleCredentialsRequest);

Dieses Beispiel zeigt die Verwendung des optionalen RoleSessionName Werts, um der Anmeldeinformationssitzung zu Prüfungszwecken einen Namen zuzuweisen. Wenn Sie keinen Rollensitzungsnamen angeben, wird der Standardwert "[fleet-id]-[host-id]" verwendet.

// form the fleet credentials request Aws::GameLift::Server::Model::GetFleetRoleCredentialsRequest getFleetRoleCredentialsRequest; getFleetRoleCredentialsRequest.SetRoleArn("arn:aws:iam::123456789012:role/service-role/exampleGameLiftAction"); getFleetRoleCredentialsRequest.SetRoleSessionName("MyFleetRoleSession"); Aws::GameLift::GetFleetRoleCredentialsOutcome credentials = Aws::GameLift::Server::GetFleetRoleCredentials(getFleetRoleCredentialsRequest);

ListContainersNetworkInfo()

Ruft Netzwerkinformationen für alle Container ab, die auf derselben Instance ausgeführt werden, einschließlich des Namens, der ID, der lokalen IP-Adresse und des Containergruppentyps der einzelnen Container. Verwenden Sie diese Informationen, damit Spieleserverprozesse andere Container erkennen und mit ihnen kommunizieren können, die auf derselben Instance ausgeführt werden.

Diese Aktion wird nur für Containerflotten unterstützt. Wenn sie von einem anderen Berechnungstyp aufgerufen wird, gibt sie einen UNSUPPORTED_COMPUTE_TYPE_EXCEPTION Fehler zurück. Amazon GameLift Serversruft die Netzwerkinformationen von einem Discovery-Server ab, der lokal auf der Instance ausgeführt wird.

Syntax

ListContainersNetworkInfoOutcome ListContainersNetworkInfo()

Rückgabewert

Gibt eine ListContainersNetworkInfoOutcome zurück.

Beispiel

Aws::GameLift::ListContainersNetworkInfoOutcome containersNetworkInfo = Aws::GameLift::Server::ListContainersNetworkInfo();

Zerstören ()

Befreit das Amazon GameLift Servers Spieleserver-SDK aus dem Speicher. Es hat sich bewährt, diese Methode nach ProcessEnding() und vor dem Beenden des Prozesses aufzurufen. Wenn Sie eine Anywhere-Flotte verwenden und die Serverprozesse nicht nach jeder Spielsitzung beenden, rufen Sie auf Destroy() und führen Sie dann InitSDK() eine Neuinitialisierung durch, bevor Sie benachrichtigen, Amazon GameLift Servers dass der Prozess bereit ist, eine Spielsitzung mit zu hosten. ProcessReady()

Syntax

GenericOutcome Aws::GameLift::Server::Destroy();

Parameters

Es gibt keine Parameter.

Rückgabewert

Gibt ein generisches Ergebnis zurück, das aus Erfolg oder Misserfolg mit einer Fehlermeldung besteht.

Beispiel

Aws::GameLift::GenericOutcome processEndingOutcome = Aws::GameLift::Server::ProcessEnding(); Aws::GameLift::Server::Destroy(); // Exit the process with success or failure if (processEndingOutcome.IsSuccess()) { exit(0); } else { cout << "ProcessEnding() failed. Error: " << processEndingOutcome.GetError().GetErrorMessage(); exit(-1); }