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++ (Unreal) Server-SDK 5.x für Amazon GameLift Servers -- Aktionen
Verwenden Sie die Amazon GameLift Servers Unreal Server SDK 5.x-Referenz, um Ihr Multiplayer-Spiel für die Verwendung mit vorzubereiten. Amazon GameLift Servers Einzelheiten zum Integrationsprozess finden Sie unter. Amazon GameLift ServersZu deinem Spieleserver hinzufügen Wenn du das Amazon GameLift Servers Plugin für Unreal verwendest, siehe auchAmazon GameLift ServersPlugin für Unreal Engine.
Anmerkung
In diesem Thema wird die Amazon GameLift Servers 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.
C++ (Unreal) Server-SDK 5.x für Amazon GameLift Servers -- Datentypen
Themen
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 Servers SDK für eine verwaltete EC2 Flotte. Rufen Sie diese Methode beim Start auf, bevor eine weitere Initialisierung im Zusammenhang mit erfolgt. Amazon GameLift Servers Diese Methode liest Serverparameter aus der Host-Umgebung, um die Kommunikation zwischen dem Server und dem Amazon GameLift Servers Dienst 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 Amazon GameLift Servers Agent to enable further communication. FGameLiftGenericOutcome initSdkOutcome = gameLiftSdkModule->InitSDK();
InitSDK()
Initialisiert das Amazon GameLift Servers SDK für eine Anywhere-Flotte oder eine verwaltete Containerflotte. Rufen Sie diese Methode beim Start auf, bevor eine weitere Initialisierung im Zusammenhang mit erfolgt. Amazon GameLift Servers Für diese Methode sind explizite Serverparameter erforderlich, um die Kommunikation zwischen dem Server und dem Amazon GameLift Servers Dienst einzurichten.
Syntax
FGameLiftGenericOutcome InitSDK(serverParameters)
Parameter
- FServerParameter
-
Um einen Spieleserver auf einer Amazon GameLift Servers Anywhere-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 Amazon GameLift Servers Flotte, die Ihren Amazon GameLift Servers Anywhere-Computer enthält.
-
Das durch den Amazon GameLift Servers 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 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 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 Amazon GameLift Servers Agent to enable further communication. FGameLiftGenericOutcome initSdkOutcome = gameLiftSdkModule->InitSDK(serverParameters);
ProcessReady()
BenachrichtigtAmazon GameLift Servers, dass der Serverprozess bereit ist, Spielsitzungen abzuhalten. 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 FProcessParameter Objekt, das die folgenden Informationen über den Serverprozess übermittelt:
-
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 besteht, mit einer Fehlermeldung.
Beispiel
Dieses Beispiel veranschaulicht die Implementierung des ProcessReady()-Aufrufs und der Delegate-Funktion.
//Calling ProcessReady tells Amazon GameLift Servers this game server is ready to receive incoming game sessions! UE_LOG(GameServerLog, Log, TEXT("Calling Process Ready")); FGameLiftGenericOutcome processReadyOutcome = gameLiftSdkModule->ProcessReady(*params);
ProcessEnding()
BenachrichtigtAmazon GameLift Servers, dass der Serverprozess beendet wird. Ruft 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. Amazon GameLift Servers 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 Amazon GameLift Servers we are indeed going to shutdown. params->OnTerminate.BindLambda([=]() { UE_LOG(GameServerLog, Log, TEXT("Game Server Process is terminating")); gameLiftSdkModule->ProcessEnding(); });
ActivateGameSession()
MeldetAmazon GameLift Servers, 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, Amazon GameLift Servers 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, Amazon GameLift Servers 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 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 Instanz während eines Scale-Down-Ereignisses beendet wird.
-
Wenn eine Instance aufgrund einer Spot-Instance-Unterbrechung beendet wird.
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()
BenachrichtigtAmazon GameLift Servers, dass ein Spieler mit der angegebenen Spielersitzungs-ID eine Verbindung zum Serverprozess hergestellt hat und eine Bestätigung benötigt. Amazon GameLift Serversüberprüft, ob die Player-Sitzungs-ID gültig ist. Nachdem die Spielersitzung bestätigt wurde, wird der Status des Spieler-Slots von RESERVIERT auf AKTIV Amazon GameLift Servers geändert.
Syntax
FGameLiftGenericOutcome AcceptPlayerSession(const FString& playerSessionId)
Parameter
- playerSessionId
-
Eindeutige IDAmazon GameLift Servers, die ausgestellt wird, 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 einer ungültigen Spielersitzung beinhaltet. IDs
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()
BenachrichtigtAmazon GameLift Servers, dass ein Spieler die Verbindung zum Serverprozess getrennt hat. Amazon GameLift ServersÄndert daraufhin den Player-Slot auf „Verfügbar“.
Syntax
FGameLiftGenericOutcome RemovePlayerSession(const FString& playerSessionId)
Parameter
playerSessionId
-
Eindeutige IDAmazon GameLift Servers, die ausgestellt wird, 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 mit einer einzigen Spieler-ID verknüpft 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 ihn auf 10 setzen, werden die Sitzungsdatensätze der ersten 10 Spieler Amazon GameLift Servers zurückgegeben, 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 Anforderung zur Suche nach neuen Spielern für offene Slots in einer Spielsitzung, die mit FlexMatch erstellt wurde. Weitere Informationen finden Sie unter FlexMatchBackfill-Funktion.
Diese Aktion ist asynchron. Wenn neue Spieler gematcht werden, Amazon GameLift Servers liefert es mithilfe der 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 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 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 zu dem TLS-Zertifikat ab, mit dem die Netzwerkverbindung zwischen Ihrer Amazon GameLift Servers Anywhere-Rechenressource und verschlüsselt wurde. 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
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 GameLift Servers zur Interaktion mit anderen berechtigen. 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 }