Referenz zum Amazon GameLift Server SDK (Unreal) 5.x: Aktionen - Amazon GameLift

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.

Referenz zum Amazon GameLift Server SDK (Unreal) 5.x: Aktionen

Sie können diese Amazon GameLift Unreal-Server-SDK-Referenz verwenden, um Ihr Multiplayer-Spiel für die Verwendung mit Amazon GameLift vorzubereiten. Einzelheiten zum Integrationsprozess finden Sie unter Füge Amazon GameLift zu deinem Spieleserver hinzu und Informationen zur Verwendung des Unreal SDK-Server-Plug-ins finden Sie unter. Integrieren Sie Amazon GameLift in ein Unreal Engine-Projekt

Anmerkung

In diesem Thema wird die Amazon GameLift C++-API beschrieben, die Sie beim Entwickeln für die Unreal Engine verwenden können. Insbesondere bezieht sich diese Dokumentation auf Code, den Sie mit der -DBUILD_FOR_UNREAL=1 Option kompilieren.

GetSdkVersion()

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

Syntax

FGameLiftStringOutcome GetSdkVersion();

Rückgabewert

War der Aufruf erfolgreich, gibt die Funktion die aktuelle SDK-Version als FGameLiftStringOutcome-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();

InitSDK()

Initialisiert das Amazon GameLift SDK für eine verwaltete EC2-Flotte. Rufen Sie diese Methode beim Start auf, bevor eine andere Initialisierung im Zusammenhang mit Amazon GameLift erfolgt. Diese Methode liest Serverparameter aus der Host-Umgebung, um die Kommunikation zwischen dem Server und dem GameLift Amazon-Service einzurichten.

Syntax

FGameLiftGenericOutcome InitSDK()

Rückgabewert

Bei Erfolg wird ein InitSdkOutcome Objekt zurückgegeben, das angibt, dass der Serverprozess aufrufbereit istProcessReady().

Beispiel

//Call InitSDK to establish a local connection with the GameLift agent to enable further communication. FGameLiftGenericOutcome initSdkOutcome = gameLiftSdkModule->InitSDK();

InitSDK()

Initialisiert das Amazon GameLift SDK für eine Anywhere Flotte. Rufen Sie diese Methode beim Start auf, bevor eine andere Initialisierung im Zusammenhang mit Amazon GameLift erfolgt. Diese Methode erfordert explizite Serverparameter, um die Kommunikation zwischen dem Server und dem GameLift Amazon-Service einzurichten.

Syntax

FGameLiftGenericOutcome InitSDK(serverParameters)

Parameter

FServerParameters

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

  • Die URL, mit der die WebSocket Verbindung zu Ihrem Spieleserver hergestellt wurde.

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

  • Die ID des Computers, auf dem deine Gameserver-Prozesse gehostet werden.

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

  • Das durch den GameLift Amazon-Vorgang generierte Autorisierungstoken.

Rückgabewert

Bei Erfolg wird ein InitSdkOutcome Objekt zurückgegeben, das angibt, dass der Serverprozess aufrufbereit istProcessReady().

Anmerkung

Wenn Aufrufe von für Spiel-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 beheben, erstellen Sie einen neuen Build und stellen Sie ihn in einer neuen Flotte bereit.

Beispiel

//Define the server parameters FServerParameters serverParameters; parameters.m_authToken = "1111aaaa-22bb-33cc-44dd-5555eeee66ff"; parameters.m_fleetId = "arn:aws:gamelift:us-west-1:111122223333:fleet/fleet-9999ffff-88ee-77dd-66cc-5555bbbb44aa"; parameters.m_hostId = "HardwareAnywhere"; parameters.m_processId = "PID1234"; parameters.m_webSocketUrl = "wss://us-west-1.api.amazongamelift.com"; //Call InitSDK to establish a local connection with the GameLift agent to enable further communication. FGameLiftGenericOutcome initSdkOutcome = gameLiftSdkModule->InitSDK(serverParameters);

ProcessReady()

Benachrichtigt Amazon GameLift , dass der Serverprozess bereit ist, Spielsitzungen zu hosten. Rufen Sie diese Methode nach dem Aufrufen aufInitSDK(). Diese Methode sollte nur einmal pro Prozess aufgerufen werden.

Syntax

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

Parameter

processParameters

Ein FProcessParameters Objekt, das die folgenden Informationen über den Serverprozess übermittelt:

  • Namen der Callback-Methoden, die im Spielservercode implementiert sind, den der GameLift Amazon-Service aufruft, um mit dem Serverprozess zu kommunizieren.

  • Die Portnummer, auf der der Serverprozess horcht.

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

Rückgabewert

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

Beispiel

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

//Calling ProcessReady tells GameLift this game server is ready to receive incoming game sessions! UE_LOG(GameServerLog, Log, TEXT("Calling Process Ready")); FGameLiftGenericOutcome processReadyOutcome = gameLiftSdkModule->ProcessReady(*params);

ProcessEnding()

Informiert Amazon darüber GameLift , dass der Serverprozess beendet wird. Rufen Sie diese Methode nach allen anderen Bereinigungsaufgaben (einschließlich des Herunterfahrens der aktiven Spielsitzung) und vor dem Beenden des Vorgangs auf. Je nach Ergebnis von wird der ProcessEnding() Prozess mit Erfolg (0) oder Fehler (-1) beendet und generiert ein Flottenereignis. Wenn der Prozess mit einem Fehler beendet wird, ist SERVER_PROCESS_TERMINATED_UNHEALTHY das generierte Flottenereignis ().

Syntax

FGameLiftGenericOutcome ProcessEnding()

Rückgabewert

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

Beispiel

//OnProcessTerminate callback. GameLift will invoke this callback before shutting down an instance hosting this game server. //It gives this game server a chance to save its state, communicate with services, etc., before being shut down. //In this case, we simply tell GameLift we are indeed going to shutdown. params->OnTerminate.BindLambda([=]() { UE_LOG(GameServerLog, Log, TEXT("Game Server Process is terminating")); gameLiftSdkModule->ProcessEnding(); });

ActivateGameSession()

Benachrichtigt Amazon GameLift , dass der Serverprozess eine Spielsitzung aktiviert hat und nun bereit ist, Spielerverbindungen zu empfangen. Diese Aktion sollte als Teil der onStartGameSession() Callback-Funktion aufgerufen werden, nachdem alle Spielsitzungen initialisiert wurden.

Syntax

FGameLiftGenericOutcome ActivateGameSession()

Rückgabewert

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

Beispiel

Dieses Beispiel zeigt, wie es als Teil der onStartGameSession() Delegate-Funktion ActivateGameSession() aufgerufen wird.

//When a game session is created, GameLift sends an activation request to the game server and passes along the game session object containing game properties and other settings. //Here is where a game server should take action based on the game session object. //Once the game server is ready to receive incoming player connections, it should invoke GameLiftServerAPI.ActivateGameSession() auto onGameSession = [=](Aws::GameLift::Server::Model::GameSession gameSession) { FString gameSessionId = FString(gameSession.GetGameSessionId()); UE_LOG(GameServerLog, Log, TEXT("GameSession Initializing: %s"), *gameSessionId); gameLiftSdkModule->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

FGameLiftGenericOutcome UpdatePlayerSessionCreationPolicy(EPlayerSessionCreationPolicy policy)

Parameter

playerCreationSessionRichtlinie

Zeichenfolgenwert, der angibt, ob die Spielsitzung neue Spieler akzeptiert.

Gültige Werte sind:

  • ACCEPT_ALL – Akzeptiert alle neuen Spielersitzungen.

  • DENY_ALL – Verwehrt neue Spielersitzungen.

Rückgabewert

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

Beispiel

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

FGameLiftGenericOutcome outcome = gameLiftSdkModule->UpdatePlayerSessionCreationPolicy(Aws::GameLift::Model::EPlayerSessionCreationPolicy::ACCEPT_ALL);

GetGameSessionId()

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

Bei Prozessen im Leerlauf, die während einer Spielsitzung nicht aktiviert wurden, gibt der Aufruf a FGameLiftError zurück.

Syntax

FGameLiftStringOutcome GetGameSessionId()

Parameter

Diese Aktion hat keine Parameter.

Rückgabewert

War der Aufruf erfolgreich, gibt die Funktion die Spielsitzungs-ID als FGameLiftStringOutcome-Objekt zurück. Wenn das nicht erfolgreich ist, wird eine Fehlermeldung zurückgegeben.“

Bei inaktiven Prozessen, die nicht während einer Spielsitzung aktiviert werden, gibt der Aufruf Success = True und GameSessionId = zurück"".

Beispiel

//When a game session is created, GameLift sends an activation request to the game server and passes along the game session object containing game properties and other settings. //Here is where a game server should take action based on the game session object. //Once the game server is ready to receive incoming player connections, it should invoke GameLiftServerAPI.ActivateGameSession() auto onGameSession = [=](Aws::GameLift::Server::Model::GameSession gameSession) { FString gameSessionId = FString(gameSession.GetGameSessionId()); UE_LOG(GameServerLog, Log, TEXT("GameSession Initializing: %s"), *gameSessionId); gameLiftSdkModule->ActivateGameSession(); };

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 wird aktiv, nachdem er einen onProcessTerminate() Rückruf von Amazon GameLift erhalten hat. Amazon GameLift ruft onProcessTerminate() aus den folgenden Gründen an:

Syntax

AwsDateTimeOutcome GetTerminationTime()

Rückgabewert

Bei Erfolg wird die Kündigungszeit als Objekt AwsDateTimeOutcome zurückgegeben. Der Wert ist die Endzeit, ausgedrückt in verstrichenen Ticks, die seitdem vergangen sind. 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() Rückruf 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

AwsDateTimeOutcome TermTimeOutcome = gameLiftSdkModule->GetTerminationTime();

AcceptPlayerSession()

Benachrichtigt Amazon GameLift , dass ein Spieler mit der angegebenen Spielersitzungs-ID eine Verbindung zum Serverprozess hergestellt hat und eine Bestätigung benötigt. Amazon GameLift überprüft, ob die Spielersitzungs-ID gültig ist. Nachdem die Spielersitzung bestätigt wurde, GameLift ändert Amazon den Status des Spieler-Slots von RESERVIERT auf AKTIV.

Syntax

FGameLiftGenericOutcome AcceptPlayerSession(const FString& playerSessionId)

Parameter

playerSessionId

Eindeutige ID, die von Amazon ausgestellt wird GameLift , wenn eine neue Spielersitzung erstellt wird.

Rückgabewert

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

Beispiel

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

bool GameLiftManager::AcceptPlayerSession(const FString& playerSessionId, const FString& playerId) { #if WITH_GAMELIFT UE_LOG(GameServerLog, Log, TEXT("Accepting GameLift PlayerSession: %s . PlayerId: %s"), *playerSessionId, *playerId); FString gsId = GetCurrentGameSessionId(); if (gsId.IsEmpty()) { UE_LOG(GameServerLog, Log, TEXT("No GameLift GameSessionId. Returning early!")); return false; } if (!gameLiftSdkModule->AcceptPlayerSession(playerSessionId).IsSuccess()) { UE_LOG(GameServerLog, Log, TEXT("PlayerSession not Accepted.")); return false; } // Add PlayerSession from internal data structures keeping track of connected players connectedPlayerSessionIds.Add(playerSessionId); idToPlayerSessionMap.Add(playerSessionId, PlayerSession{ playerId, playerSessionId }); return true; #else return false; #endif }

RemovePlayerSession()

Benachrichtigt Amazon GameLift , dass ein Spieler die Verbindung zum Serverprozess getrennt hat. Als Reaktion darauf GameLift ändert Amazon den Player-Slot auf verfügbar.

Syntax

FGameLiftGenericOutcome RemovePlayerSession(const FString& playerSessionId)

Parameter

playerSessionId

Eindeutige ID, die von Amazon ausgestellt wird GameLift , wenn eine neue Spielersitzung erstellt wird.

Rückgabewert

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

Beispiel

bool GameLiftManager::RemovePlayerSession(const FString& playerSessionId) { #if WITH_GAMELIFT UE_LOG(GameServerLog, Log, TEXT("Removing GameLift PlayerSession: %s"), *playerSessionId); if (!gameLiftSdkModule->RemovePlayerSession(playerSessionId).IsSuccess()) { UE_LOG(GameServerLog, Log, TEXT("PlayerSession Removal Failed")); return false; } // Remove PlayerSession from internal data structures that are keeping track of connected players connectedPlayerSessionIds.Remove(playerSessionId); idToPlayerSessionMap.Remove(playerSessionId); // end the session if there are no more players connected if (connectedPlayerSessionIds.Num() == 0) { EndSession(); } return true; #else return false; #endif }

DescribePlayerSessions()

Ruft Spielersitzungsdaten ab, einschließlich Einstellungen, Sitzungsmetadaten und Spielerdaten. Verwenden Sie diese Methode, um Informationen zu folgenden Themen abzurufen:

  • Eine Einzelspieler-Sitzung

  • Alle Spielersitzungen in einer Spielsitzung

  • Alle Spielersitzungen, die einer einzelnen Spieler-ID zugeordnet sind

Syntax

FGameLiftDescribePlayerSessionsOutcome DescribePlayerSessions(const FGameLiftDescribePlayerSessionsRequest &describePlayerSessionsRequest)

Parameter

FGameLiftDescribePlayerSessionsRequest

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

Rückgabewert

Wenn sie erfolgreich ausgeführt wird, gibt die Funktion ein FGameLiftDescribePlayerSessionsOutcome-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 NextTokenund auf 10 setzen, GameLift gibt Amazon die Sitzungsdatensätze der ersten 10 Spieler zurück, die der Anfrage entsprechen.

void GameLiftManager::DescribePlayerSessions() { #if WITH_GAMELIFT FString localPlayerSessions; for (auto& psId : connectedPlayerSessionIds) { PlayerSession ps = idToPlayerSessionMap[psId]; localPlayerSessions += FString::Printf(TEXT("%s : %s ; "), *(ps.playerSessionId), *(ps.playerId)); } UE_LOG(GameServerLog, Log, TEXT("LocalPlayerSessions: %s"), *localPlayerSessions); UE_LOG(GameServerLog, Log, TEXT("Describing PlayerSessions in this GameSession")); FGameLiftDescribePlayerSessionsRequest request; request.m_gameSessionId = GetCurrentGameSessionId(); FGameLiftDescribePlayerSessionsOutcome outcome = gameLiftSdkModule->DescribePlayerSessions(request); LogDescribePlayerSessionsOutcome(outcome); #endif }

StartMatchBackfill()

Sendet eine Anfrage, um neue Spieler für offene Spielautomaten in einer Spielsitzung zu finden, die mit erstellt wurde. FlexMatch Weitere Informationen finden Sie unter FlexMatch Backfill-Funktion.

Diese Aktion ist asynchron. Wenn neue Spieler gematcht werden, GameLift liefert Amazon über die Callback-Funktion aktualisierte Matchmaker-Daten. 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

FGameLiftStringOutcome StartMatchBackfill (FStartMatchBackfillRequest &startBackfillRequest);

Parameter

FStartMatchBackfillRequest

Ein StartMatchBackfillRequest Objekt, das die folgenden Informationen übermittelt:

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

  • 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 ID des Match-Backfill-Tickets zurück oder schlägt fehl und es wird eine Fehlermeldung angezeigt.

Beispiel

FGameLiftStringOutcome FGameLiftServerSDKModule::StartMatchBackfill(const FStartMatchBackfillRequest& request) { #if WITH_GAMELIFT Aws::GameLift::Server::Model::StartMatchBackfillRequest sdkRequest; sdkRequest.SetTicketId(TCHAR_TO_UTF8(*request.m_ticketId)); sdkRequest.SetGameSessionArn(TCHAR_TO_UTF8(*request.m_gameSessionArn)); sdkRequest.SetMatchmakingConfigurationArn(TCHAR_TO_UTF8(*request.m_matchmakingConfigurationArn)); for (auto player : request.m_players) { Aws::GameLift::Server::Model::Player sdkPlayer; sdkPlayer.SetPlayerId(TCHAR_TO_UTF8(*player.m_playerId)); sdkPlayer.SetTeam(TCHAR_TO_UTF8(*player.m_team)); for (auto entry : player.m_latencyInMs) { sdkPlayer.WithLatencyMs(TCHAR_TO_UTF8(*entry.Key), entry.Value); } std::map<std::string, Aws::GameLift::Server::Model::AttributeValue> sdkAttributeMap; for (auto attributeEntry : player.m_playerAttributes) { FAttributeValue value = attributeEntry.Value; Aws::GameLift::Server::Model::AttributeValue attribute; switch (value.m_type) { case FAttributeType::STRING: attribute = Aws::GameLift::Server::Model::AttributeValue(TCHAR_TO_UTF8(*value.m_S)); break; case FAttributeType::DOUBLE: attribute = Aws::GameLift::Server::Model::AttributeValue(value.m_N); break; case FAttributeType::STRING_LIST: attribute = Aws::GameLift::Server::Model::AttributeValue::ConstructStringList(); for (auto sl : value.m_SL) { attribute.AddString(TCHAR_TO_UTF8(*sl)); }; break; case FAttributeType::STRING_DOUBLE_MAP: attribute = Aws::GameLift::Server::Model::AttributeValue::ConstructStringDoubleMap(); for (auto sdm : value.m_SDM) { attribute.AddStringAndDouble(TCHAR_TO_UTF8(*sdm.Key), sdm.Value); }; break; } sdkPlayer.WithPlayerAttribute((TCHAR_TO_UTF8(*attributeEntry.Key)), attribute); } sdkRequest.AddPlayer(sdkPlayer); } auto outcome = Aws::GameLift::Server::StartMatchBackfill(sdkRequest); if (outcome.IsSuccess()) { return FGameLiftStringOutcome(outcome.GetResult().GetTicketId()); } else { return FGameLiftStringOutcome(FGameLiftError(outcome.GetError())); } #else return FGameLiftStringOutcome(""); #endif }

StopMatchBackfill()

Bricht eine aktive Match-Backfill-Anfrage ab. Weitere Informationen finden Sie unter FlexMatchBackfill-Funktion.

Syntax

FGameLiftGenericOutcome StopMatchBackfill (FStopMatchBackfillRequest &stopBackfillRequest);

Parameter

FStopMatchBackfillRequest

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 Spielsitzung, die mit der Backfill-Anfrage verknüpft ist.

Rückgabewert

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

Beispiel

FGameLiftGenericOutcome FGameLiftServerSDKModule::StopMatchBackfill(const FStopMatchBackfillRequest& request) { #if WITH_GAMELIFT Aws::GameLift::Server::Model::StopMatchBackfillRequest sdkRequest; sdkRequest.SetTicketId(TCHAR_TO_UTF8(*request.m_ticketId)); sdkRequest.SetGameSessionArn(TCHAR_TO_UTF8(*request.m_gameSessionArn)); sdkRequest.SetMatchmakingConfigurationArn(TCHAR_TO_UTF8(*request.m_matchmakingConfigurationArn)); auto outcome = Aws::GameLift::Server::StopMatchBackfill(sdkRequest); if (outcome.IsSuccess()) { return FGameLiftGenericOutcome(nullptr); } else { return FGameLiftGenericOutcome(FGameLiftError(outcome.GetError())); } #else return FGameLiftGenericOutcome(nullptr); #endif }

GetComputeCertificate()

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

Syntax

FGameLiftGetComputeCertificateOutcome FGameLiftServerSDKModule::GetComputeCertificate()

Rückgabewert

Gibt ein GetComputeCertificateResponse Objekt zurück, das Folgendes enthält:

  • CertificatePath: Der Pfad zum TLS-Zertifikat auf Ihrer Rechenressource.

  • HostName: Der Hostname Ihrer Rechenressource.

Beispiel

FGameLiftGetComputeCertificateOutcome FGameLiftServerSDKModule::GetComputeCertificate() { #if WITH_GAMELIFT auto outcome = Aws::GameLift::Server::GetComputeCertificate(); if (outcome.IsSuccess()) { auto& outres = outcome.GetResult(); FGameLiftGetComputeCertificateResult result; result.m_certificate_path = UTF8_TO_TCHAR(outres.GetCertificatePath()); result.m_computeName = UTF8_TO_TCHAR(outres.GetComputeName()); return FGameLiftGetComputeCertificateOutcome(result); } else { return FGameLiftGetComputeCertificateOutcome(FGameLiftError(outcome.GetError())); } #else return FGameLiftGetComputeCertificateOutcome(FGameLiftGetComputeCertificateResult()); #endif }

GetFleetRoleCredentials()

Ruft Anmeldeinformationen für IAM-Rollen ab, die Amazon autorisieren, mit anderen GameLift zu interagieren. AWS -Services Weitere Informationen finden Sie unter Kommunizieren Sie mit anderen AWS Ressourcen aus Ihren Flotten.

Syntax

FGameLiftGetFleetRoleCredentialsOutcome FGameLiftServerSDKModule::GetFleetRoleCredentials(const FGameLiftGetFleetRoleCredentialsRequest &request)

Parameter

FGameLiftGetFleetRoleCredentialsRequest

Rückgabewert

Gibt ein FGameLiftGetFleetRoleCredentialsOutcome-Objekt zurück.

Beispiel

FGameLiftGetFleetRoleCredentialsOutcome FGameLiftServerSDKModule::GetFleetRoleCredentials(const FGameLiftGetFleetRoleCredentialsRequest &request) { #if WITH_GAMELIFT Aws::GameLift::Server::Model::GetFleetRoleCredentialsRequest sdkRequest; sdkRequest.SetRoleArn(TCHAR_TO_UTF8(*request.m_roleArn)); sdkRequest.SetRoleSessionName(TCHAR_TO_UTF8(*request.m_roleSessionName)); auto outcome = Aws::GameLift::Server::GetFleetRoleCredentials(sdkRequest); if (outcome.IsSuccess()) { auto& outres = outcome.GetResult(); FGameLiftGetFleetRoleCredentialsResult result; result.m_assumedUserRoleArn = UTF8_TO_TCHAR(outres.GetAssumedUserRoleArn()); result.m_assumedRoleId = UTF8_TO_TCHAR(outres.GetAssumedRoleId()); result.m_accessKeyId = UTF8_TO_TCHAR(outres.GetAccessKeyId()); result.m_secretAccessKey = UTF8_TO_TCHAR(outres.GetSecretAccessKey()); result.m_sessionToken = UTF8_TO_TCHAR(outres.GetSessionToken()); result.m_expiration = FDateTime::FromUnixTimestamp(outres.GetExpiration()); return FGameLiftGetFleetRoleCredentialsOutcome(result); } else { return FGameLiftGetFleetRoleCredentialsOutcome(FGameLiftError(outcome.GetError())); } #else return FGameLiftGetFleetRoleCredentialsOutcome(FGameLiftGetFleetRoleCredentialsResult()); #endif }