View a markdown version of this page

Go-Server-SDK für GameLift Amazon-Server -- 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.

Go-Server-SDK für GameLift Amazon-Server -- 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.

GameLiftServerAPI.godefiniert die Go-Server-SDK-Aktionen.

Go-Server-SDK für Amazon GameLift Servers -- Datentypen

GetSdkVersion()

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

Syntax

func GetSdkVersion() (string, error)

Rückgabewert

Bei Erfolg wird die aktuelle SDK-Version als Zeichenfolge zurückgegeben. Die zurückgegebene Zeichenfolge enthält die Versionsnummer (Beispiel5.0.0). Wenn dies nicht erfolgreich ist, wird eine Fehlermeldung wie zurückgegebencommon.SdkVersionDetectionFailed.

Beispiel

version, err := server.GetSdkVersion()

InitMetrics()

Initialisiert die Erfassung von Metriken für das Amazon GameLift Servers SDK. Mit dieser Methode werden Berichte zu Messwerten eingerichtet, um die Serverleistung und den Zustand der Server zu überwachen. Rufen Sie diese Methode danachInitSDK(), aber vorher aufProcessReady().

Syntax

func InitMetrics() error func InitMetrics(metricsParameters MetricsParameters) error

Parameters

MetricsParameters (Optional)

Ein MetricsParameters Objekt, das die Erfassung von Metriken konfiguriert. Wenn nicht angegeben, wird die Standardkonfiguration der Metriken verwendet. Die MetricsParameters Struktur enthält die folgenden Felder:

  • StatsdHost- Der Hostname oder die IP-Adresse des StatsD-Servers.

  • StatsdPort- Die Portnummer für den StatsD-Server.

  • CrashReporterHost- Der Hostname oder die IP-Adresse des Crash-Reporter-Dienstes.

  • CrashReporterPort- Die Portnummer für den Crash-Reporter-Dienst.

  • FlushIntervalMs- Das Intervall in Millisekunden für das Löschen von Metrikdaten.

  • MaxPacketSize- Die maximale Größe von Metrikpaketen in Byte.

Weitere Informationen zur MetricsParameters Struktur finden Sie unter Server SDK 5.x für C#-Datentypen.

Rückgabewert

Bei Erfolg wird ein nil Fehler zurückgegeben, der darauf hinweist, dass die Erfassung der Messobjekte erfolgreich initialisiert wurde.

Beispiel

Initialisieren Sie die Metriken mit der Standardkonfiguration:

err := server.InitMetrics()

Initialisieren Sie Metriken mit benutzerdefinierter Konfiguration:

metricsParams := MetricsParameters{ StatsdHost: "localhost", StatsdPort: 8125, CrashReporterHost: "localhost", CrashReporterPort: 9125, FlushIntervalMs: 5000, MaxPacketSize: 1024, } err := server.InitMetrics(metricsParams)

InitMetricsFromEnvironment()

Initialisiert die Erfassung von Metriken für das Amazon GameLift Servers SDK mithilfe der Konfiguration aus Umgebungsvariablen. Diese Methode richtet die Metrikberichterstattung unter Verwendung der Standardeinstellungen ein, die aus der Laufzeitumgebung abgeleitet wurden.

Rufen Sie diese Methode danachInitSDK(), aber vorher aufProcessReady().

Syntax

func InitMetricsFromEnvironment() error

Rückgabewert

Bei Erfolg wird ein nil Fehler zurückgegeben, der darauf hinweist, dass die Erfassung der Metriken mithilfe der Umgebungskonfiguration erfolgreich initialisiert wurde.

Beispiel

err := server.InitMetricsFromEnvironment()

InitSDK()

Initialisiert das Amazon GameLift Servers-SDK. Rufen Sie diese Methode beim Start auf, bevor eine weitere Initialisierung in diesem Zusammenhang Amazon GameLift Servers erfolgt. Diese Methode richtet die Kommunikation zwischen dem Server und dem Amazon GameLift Servers Dienst ein.

Syntax

func InitSDK(params ServerParameters) error

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.

Um einen Spieleserver auf einer Amazon GameLift Servers verwalteten EC2-Flotte zu initialisieren, konstruieren Sie ein ServerParameters Objekt ohne Parameter. Mit diesem Aufruf richtet der Amazon GameLift Servers Agent die Rechenumgebung ein und stellt automatisch eine Verbindung zum Amazon GameLift Servers Dienst für Sie her.

Rückgabewert

Bei Erfolg wird ein nil Fehler zurückgegeben, der darauf hinweist, dass der Serverprozess zum Aufrufen bereit istProcessReady().

Anmerkung

Wenn Aufrufe von für Spiele-Builds, die auf Anywhere-Flotten bereitgestellt wurden, 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 serverParameters := ServerParameters { WebSocketURL: "wss://us-west-1.api.amazongamelift.com", ProcessID: "PID1234", HostID: "HardwareAnywhere", FleetID: "aarn:aws:gamelift:us-west-1:111122223333:fleet/fleet-9999ffff-88ee-77dd-66cc-5555bbbb44aa", AuthToken: "1111aaaa-22bb-33cc-44dd-5555eeee66ff" } //Call InitSDK to establish a local connection with the Amazon GameLift Servers Agent to enable further communication. err := server.InitSDK(serverParameters)

Amazon GameLift ServersBeispiel für verwaltetes EC2

//Define the server parameters serverParameters := ServerParameters {} //Call InitSDK to establish a local connection with the Amazon GameLift Servers Agent to enable further communication. err := 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

func ProcessReady(param ProcessParameters) error

Parameters

ProcessParameters

Ein ProcessParameters Objekt übermittelt die folgenden Informationen über den Serverprozess:

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

  • Die Portnummer, die der Serverprozess abhört.

  • Der LogParameters Datentyp, der den Pfad zu allen spielsitzungsspezifischen Dateien enthält, die Sie erfassen und Amazon GameLift Servers speichern möchten.

Rückgabewert

Gibt einen Fehler mit einer Fehlermeldung zurück, wenn die Methode fehlschlägt. Gibt zurücknil, ob die Methode erfolgreich ist.

Beispiel

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

// Define the process parameters processParams := ProcessParameters { OnStartGameSession: gameProcess.OnStartGameSession, OnUpdateGameSession: gameProcess.OnGameSessionUpdate, OnProcessTerminate: gameProcess.OnProcessTerminate, OnHealthCheck: gameProcess.OnHealthCheck, Port: port, LogParameters: LogParameters { // logging and error example []string {"C:\\game\\logs", "C:\\game\\error"} } } err := server.ProcessReady(processParams)

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

func ProcessEnding() error

Rückgabewert

Gibt einen Fehlercode 0 oder einen definierten Fehlercode zurück.

Beispiel

// operations to end game sessions and the server process defer func() { err := server.ProcessEnding() server.Destroy() if err != nil { fmt.Println("ProcessEnding() failed. Error: ", err) os.Exit(-1) } else { os.Exit(0) } }

ActivateGameSession()

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

Syntax

func ActivateGameSession() error

Rückgabewert

Gibt einen Fehler mit einer Fehlermeldung zurück, wenn die Methode fehlschlägt.

Beispiel

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

func OnStartGameSession(GameSession gameSession) { // game-specific tasks when starting a new game session, such as loading map // Activate when ready to receive players err := 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

func UpdatePlayerSessionCreationPolicy(policy model.PlayerSessionCreationPolicy) error

Parameters

Spieler SessionCreationPolicy

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

Gültige Werte sind:

  • model.AcceptAll— Akzeptiere alle Sitzungen mit neuen Spielern.

  • model.DenyAll— Lehne alle Sitzungen mit neuen Spielern ab.

Rückgabewert

Gibt einen Fehler mit einer Fehlermeldung zurück, falls ein Fehler auftritt.

Beispiel

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

err := server.UpdatePlayerSessionCreationPolicy(model.AcceptAll)

GetGameSessionId()

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

Syntax

func GetGameSessionID() (string, error)

Parameters

Diese Aktion hat keine Parameter.

Rückgabewert

Bei Erfolg wird die ID der Spielsitzung und der Fehler Null zurückgegeben. Bei inaktiven Prozessen, die noch nicht mit einer Spielsitzung aktiviert wurden, gibt der Aufruf eine leere Zeichenfolge und einen nil Fehler zurück.

Beispiel

gameSessionID, err := server.GetGameSessionID()

GetTerminationTime()

Gibt die Uhrzeit zurück, zu der ein Serverprozess planmäßig heruntergefahren werden soll, sofern eine Terminierungszeit verfügbar ist. Ein Serverprozess führt diese Aktion aus, 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

func GetTerminationTime() (int64, error)

Rückgabewert

Bei Erfolg wird der Zeitstempel in Epochensekunden zurückgegeben, zu dem das Herunterfahren des Serverprozesses geplant ist, und es wird ein Fehler bei der Beendigung angezeigt. nil Der Wert ist die Abschlusszeit, ausgedrückt in verstrichenen Ticks von. 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.

Beispiel

terminationTime, err := server.GetTerminationTime()

AcceptPlayerSession()

BenachrichtigtAmazon GameLift Servers, dass ein Spieler mit der angegebenen Spielersitzungs-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 den Status des Spieler-Slots von RESERVED auf, nachdem die Spielersitzung bestätigt wurde. ACTIVE

Syntax

func AcceptPlayerSession(playerSessionID string) error

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

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

func ReceiveConnectingPlayerSessionID(conn Connection, playerSessionID string) { err := server.AcceptPlayerSession(playerSessionID) if err != nil { connection.Accept() } else { connection.Reject(err.Error()) } }

RemovePlayerSession()

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

Syntax

func RemovePlayerSession(playerSessionID string) error

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

err := server.RemovePlayerSession(playerSessionID)

DescribePlayerSessions()

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

  • Eine Einzelspieler-Sitzung

  • Alle Spielersitzungen in einer Spielsitzung

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

Syntax

func DescribePlayerSessions(req request.DescribePlayerSessionsRequest) (result.DescribePlayerSessionsResult, error) { return srv.describePlayerSessions(&req) }

Parameters

DescribePlayerSessionsRequest

Ein DescribePlayerSessionsRequest Objekt beschreibt, welche Spielersitzungen abgerufen werden sollen.

Rückgabewert

Bei Erfolg wird ein DescribePlayerSessionsResult Objekt zurückgegeben, das eine Reihe von Player-Sitzungsobjekten enthält, 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.

// create request describePlayerSessionsRequest := request.NewDescribePlayerSessions() describePlayerSessionsRequest.GameSessionID, _ = server.GetGameSessionID() // get ID for the current game session describePlayerSessionsRequest.Limit = 10 // return the first 10 player sessions describePlayerSessionsRequest.PlayerSessionStatusFilter = "ACTIVE" // Get all player sessions actively connected to the game session describePlayerSessionsResult, err := server.DescribePlayerSessions(describePlayerSessionsRequest)

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

func StartMatchBackfill(req request.StartMatchBackfillRequest) (result.StartMatchBackfillResult, error)

Parameters

StartMatchBackfillRequest

Ein StartMatchBackfillRequest Objekt übermittelt die folgenden Informationen:

  • Eine Ticket-ID für die Zuordnung zur Backfill-Anforderung. Diese Information ist optional; wenn keine ID angegeben wird, wird eine Amazon GameLift Servers 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 StartMatchBackfillResult Objekt mit der Ticket-ID für das Auffüllen des Spiels oder einen Fehler mit einer Fehlermeldung zurück.

Beispiel

// form the request startBackfillRequest := request.NewStartMatchBackfill() startBackfillRequest.RequestID = "1111aaaa-22bb-33cc-44dd-5555eeee66ff" // optional startBackfillRequest.MatchmakingConfigurationArn = "arn:aws:gamelift:us-west-2:111122223333:matchmakingconfiguration/MyMatchmakerConfig" var matchMaker model.MatchmakerData if err := matchMaker.UnmarshalJSON([]byte(gameSession.MatchmakerData)); err != nil { return } startBackfillRequest.Players = matchMaker.Players res, err := server.StartMatchBackfill(startBackfillRequest) // Implement callback function for backfill func OnUpdateGameSession(myGameSession model.GameSession) { // game-specific tasks to prepare for the newly matched players and update matchmaker data as needed }

StopMatchBackfill()

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

Syntax

func StopMatchBackfill(req request.StopMatchBackfillRequest) error

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

stopBackfillRequest := request.NewStopMatchBackfill() // Use this function to create request stopBackfillRequest.TicketID = "1111aaaa-22bb-33cc-44dd-5555eeee66ff" stopBackfillRequest.MatchmakingConfigurationArn = "arn:aws:gamelift:us-west-2:111122223333:matchmakingconfiguration/MyMatchmakerConfig" //error err := server.StopMatchBackfill(stopBackfillRequest)

GetComputeCertificate()

Ruft den Pfad zum TLS-Zertifikat ab, das zum Verschlüsseln der Netzwerkverbindung zwischen dem Spieleserver und deinem Spielclient verwendet wird. Du kannst den Zertifikatspfad verwenden, wenn du dein Computergerät bei einer Amazon GameLift Servers Anywhere-Flotte registrierst. Weitere Informationen finden Sie unter RegisterCompute.

Syntax

func GetComputeCertificate() (result.GetComputeCertificateResult, error)

Rückgabewert

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

  • CertificatePath: Der Pfad zum TLS-Zertifikat auf Ihrer Rechenressource. Wenn Sie eine Amazon GameLift Servers verwaltete Flotte verwenden, enthält dieser Pfad:

    • certificate.pem: Das Endbenutzerzertifikat. Die vollständige Zertifikatskette ist die Kombination von, die an dieses Zertifikat certificateChain.pem angehängt ist.

    • certificateChain.pem: Die Zertifikatskette, die das Stammzertifikat und die Zwischenzertifikate enthält.

    • rootCertificate.pem: Das Stammzertifikat.

    • privateKey.pem: Der private Schlüssel für das Endbenutzerzertifikat.

  • ComputeName: Der Name Ihrer Rechenressource.

Beispiel

tlsCertificate, err := server.GetFleetRoleCredentials(getFleetRoleCredentialsRequest)

GetFleetRoleCredentials()

Ruft die Anmeldeinformationen für die Servicerolle ab, die Sie erstellen, um die Berechtigungen Ihres anderen Benutzers AWS-Services zu Amazon GameLift Servers erweitern. Diese Anmeldeinformationen ermöglichen es Ihrem Spieleserver, Ihre AWS Ressourcen zu nutzen. Weitere Informationen finden Sie unter Richten Sie eine IAM-Servicerolle ein für Amazon GameLift Servers.

Syntax

func GetFleetRoleCredentials( req request.GetFleetRoleCredentialsRequest, ) (result.GetFleetRoleCredentialsResult, error) { return srv.getFleetRoleCredentials(&req) }

Parameters

GetFleetRoleCredentialsRequest

Rollenzugangsdaten, die den eingeschränkten Zugriff auf deine AWS Ressourcen auf den Spielserver gewähren.

Rückgabewert

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

  • AssumedRoleUserArn — Der Amazon-Ressourcenname (ARN) des Benutzers, dem die Servicerolle gehört.

  • AssumedRoleId — Die ID des Benutzers, zu dem die Servicerolle gehört.

  • AccessKeyId — Die Zugriffsschlüssel-ID für die Authentifizierung und den Zugriff auf Ihre AWS Ressourcen.

  • SecretAccessKey — Die geheime Zugriffsschlüssel-ID für die Authentifizierung.

  • SessionToken - Ein Token zur Identifizierung der aktuell aktiven Sitzung, die mit Ihren AWS Ressourcen interagiert.

  • Ablauf — Die Zeitspanne, bis Ihre Anmeldeinformationen für die Sitzung ablaufen.

Beispiel

// form the customer credentials request getFleetRoleCredentialsRequest := request.NewGetFleetRoleCredentials() getFleetRoleCredentialsRequest.RoleArn = "arn:aws:iam::123456789012:role/service-role/exampleGameLiftAction" credentials, err := 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 UnsupportedComputeTypeException Fehler zurück. Amazon GameLift Serversruft die Netzwerkinformationen von einem Discovery-Server ab, der lokal auf der Instance ausgeführt wird.

Syntax

func ListContainersNetworkInfo() (result.ListContainersNetworkInfoResult, error)

Rückgabewert

Bei Erfolg wird ein ListContainersNetworkInfoResult Objekt zurückgegeben, das Folgendes enthält:

  • ContainersNetworkInfo— Eine Liste von ContainerNetworkInfo Einträgen mit einem Eintrag für jeden Container, der auf der Instance ausgeführt wird. Jeder Eintrag enthält Folgendes:

    • ContainerName- Der Name des Containers.

    • ContainerID- Die eindeutige Kennung des Containers.

    • IPAddress— Die lokale IP-Adresse des Containers auf der Instance.

    • ContainerGroupType- Der Typ der Containergruppe, zu der der Container gehört. Gültige Werte sind GAME_SERVER und PER_INSTANCE.

Beispiel

networkInfo, err := server.ListContainersNetworkInfo() if err != nil { fmt.Println("ListContainersNetworkInfo() failed. Error: ", err) return } for _, container := range networkInfo.ContainersNetworkInfo { fmt.Printf("Container %s (%s) at %s, group type %s\n", container.ContainerName, container.ContainerID, container.IPAddress, container.ContainerGroupType) }

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

func Destroy() error { return srv.destroy() }

Rückgabewert

Gibt einen Fehler mit einer Fehlermeldung zurück, wenn die Methode fehlschlägt.

Beispiel

// operations to end game sessions and the server process defer func() { err := server.ProcessEnding() server.Destroy() if err != nil { fmt.Println("ProcessEnding() failed. Error: ", err) os.Exit(-1) } else { os.Exit(0) } }