

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 適用於 的伺服器 SDK 5.x Amazon GameLift Servers
<a name="reference-serversdk"></a>

本節提供 伺服器 SDK 5.x for 的參考文件。 Amazon GameLift Servers伺服器開發套件提供遊戲伺服器用來與服務互動的核心功能Amazon GameLift Servers。例如，您的遊戲伺服器會收到來自 服務的提示，以啟動和停止遊戲工作階段，並定期為服務提供遊戲工作階段狀態更新。將您的遊戲伺服器與伺服器 SDK 整合，再部署它們進行託管。

使用此伺服器 SDK 參考來整合您的自訂多玩家遊戲伺服器，以便與 進行託管Amazon GameLift Servers。如需整合程序的指引，請參閱 [使用伺服器 SDK 將 Amazon GameLift Servers新增至您的遊戲伺服器](gamelift-sdk-server-api.md)。

適用於 的伺服器 SDK 最新主要版本Amazon GameLift Servers為 5.x。下列託管功能需要使用 5.x 版：
+ Amazon GameLift Servers 隨處
+ Amazon GameLift Servers Unreal Engine 和 Unity 的外掛程式

**注意**  
如果您需要使用伺服器 SDK 4.x 版或更早版本，請參閱 [第 4 Amazon GameLift Servers版及更早版本的伺服器 SDK](reference-serversdk4.md) 以取得文件和下載資訊。

**Topics**
+ [適用於 的伺服器 SDK 5 中的更新 Amazon GameLift Servers](#reference-serversdk5-about)
+ [遷移至適用於 的伺服器 SDK 5.x Amazon GameLift Servers](reference-serversdk5-migration.md)
+ [適用於 -- 動作的 C\$1\$1 伺服器 SDK Amazon GameLift Servers 5.x](integration-server-sdk5-cpp-actions.md)
+ [適用於 -- 動作的 C\$1 伺服器 SDK Amazon GameLift Servers 5.x](integration-server-sdk5-csharp-actions.md)
+ [適用於 Amazon GameLift Servers -- 動作的 Go 伺服器 SDK](integration-server-sdk-go-actions.md)
+ [適用於 -- 動作的 C\$1\$1 (Unreal) 伺服器 SDK Amazon GameLift Servers 5.x](integration-server-sdk5-unreal-actions.md)

## 適用於 的伺服器 SDK 5 中的更新 Amazon GameLift Servers
<a name="reference-serversdk5-about"></a>

您的託管遊戲伺服器使用適用於 的伺服器 SDK Amazon GameLift Servers 與 Amazon GameLift Servers服務通訊，以啟動和管理玩家的遊戲工作階段。最新版本Amazon GameLift Servers的伺服器 SDK 5 提供許多改善和對新Amazon GameLift Servers功能的支援。如果您的遊戲伺服器建置目前使用Amazon GameLift Servers伺服器 SDK 4 或更早版本，請遵循本主題中的指示來更新您的遊戲。

Amazon GameLift Servers 伺服器 SDK 5.0.0 版及更新版本包含下列更新：
+ 擴展語言 – 程式庫提供下列語言：C\$1\$1、C\$1、Go。您可以建置與 Unreal Engine 搭配使用的 C\$1\$1 程式庫。
+ 遊戲引擎外掛程式支援 – Unreal Engine 和 Unity Amazon GameLift Servers的獨立外掛程式需要Amazon GameLift Servers伺服器 SDK 5 程式庫。這些外掛程式提供引導式工作流程，將您的遊戲整合、測試和部署到 Amazon GameLift Servers以進行託管。請參閱 [Amazon GameLift Servers Unity 的外掛程式 （伺服器 SDK 5.x)](unity-plug-in.md)和 [Amazon GameLift Servers Unreal Engine 的外掛程式](unreal-plugin.md) 文件。
+ Amazon GameLift ServersAnywhere 支援 – 透過 Anywhere 機群，您可以設定自己的託管資源來使用 Amazon GameLift Servers 功能 （包括配對）。新增 Amazon GameLift Servers 代理程式以自動化遊戲工作階段生命週期管理。使用 Anywhere 機群搭配現場部署硬體進行生產託管，或設定測試環境以進行快速反覆的遊戲開發。請參閱 [隨處託管](gamelift-intro-flavors.md#gamelift-intro-flavors-hosting-anywhere)和 [Amazon GameLift Servers 代理程式](https://github.com/aws/amazon-gamelift-agent)。
+ 更新的測試工具 – Amazon GameLift ServersAnywhere 功能可讓您為遊戲設定本機或雲端測試環境。設定使用或不使用 Amazon GameLift Servers 代理程式的測試。這些工具會取代 Amazon GameLift Servers Local。請參閱 [使用 Amazon GameLift Servers Anywhere 設定本機測試](integration-testing.md)。
+ 適用於 C\$1 的合併 .NET 解決方案 – C\$1 伺服器 SDK 5.1\$1 在單一解決方案中支援 .NET Framework 4.6.2 （從 4.6.1 升級） 和 .NET 6.0。.NET Standard 2.1 可與 Unity 建置的程式庫搭配使用。
+ 新`Compute`資源 – 此新資源結合了不同類型的託管資源。它包含雲端型託管資源 （受管 EC2 或容器機群） 和客戶控制的託管資源 (Anywhere 機群）。它包含下列更新：
  + `Compute` 資源的新 API 呼叫包括：[ListCompute()](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_ListCompute.html)、[DescribeCompute()](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_DescribeCompute.html) 和 [GetComputeAccess()](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GetComputeAccess.html)。這些動作會傳回任何類型的Amazon GameLift Servers機群的託管資源資訊。一般而言，對於具有使用伺服器 SDK 5.x 之遊戲伺服器的機群，請使用運算特定動作來取代執行個體特定動作。此外，這些動作適用於沒有 Amazon GameLift Servers Agent： [RegisterCompute()](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)、[DeregisterCompute()](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_DeregisterCompute.html) 和 [GetComputeAuthToken()](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GetComputeAuthToken.html) 的 Anywhere 機群。
  + `ActiveCompute` 具有 CloudWatch 維度 `FleetId`、 `Location`和 的新指標`ComputeType`。此指標會取代先前的指標 `ActiveInstances`。
+ Amazon EC2 Systems Manager (SSM) 用於遠端存取 – 為了提高安全性，請在連線至Amazon GameLift Servers受管機群中的執行個體時，使用 SSM 而非 SSH。請參閱[連線至機群執行個體](fleets-remote-access.md)。

# 遷移至適用於 的伺服器 SDK 5.x Amazon GameLift Servers
<a name="reference-serversdk5-migration"></a>

若要更新遊戲專案以使用伺服器 SDK 5.x 版，請進行下列變更：

**注意**  
如果您需要繼續使用伺服器 SDK 4.x 版或更早版本，請參閱 [第 4 Amazon GameLift Servers版及更早版本的伺服器 SDK](reference-serversdk4.md) 以取得文件和下載資訊。對於 SDK 4.0.2 版，您可以從[官方 GitHub 版本](https://github.com/amazon-gamelift/amazon-gamelift-servers-csharp-server-sdk/releases)下載它。

1. 取得適用於開發環境 **【[下載網站](https://aws.amazon.com/gamelift/servers/getting-started-sdks/)】** Amazon GameLift Servers套件的最新伺服器開發套件。針對下載的套件和版本，請遵循 `Readme` 檔案中的安裝指示。請參閱將伺服器 SDKs與遊戲專案搭配使用的這些說明。
   + [對於使用 C\$1\$1、C\$1 或 Go 的開發環境](gamelift-sdk-server-api.md)
   + [適用於 Unreal Engine 專案 （僅適用於 Unreal 程式庫的 C\$1\$1 伺服器 SDK)](integration-engines-setup-unreal.md)
   + [適用於 Unity 專案 （僅適用於 Unity 程式庫的 C\$1 伺服器 SDK)](integration-engines-unity-using.md)
   + [與 Unreal Engine 的 Amazon GameLift Servers 外掛程式搭配使用](unreal-plugin.md)
   + [與 Unity 的 Amazon GameLift Servers 外掛程式搭配使用](unity-plug-in.md)

1. 更新您的伺服器程式碼，如下所示：
   + 將伺服器程式碼回呼函數`onCreateGameSession()`變更為 `onStartGameSession()`。
   + 視需要更新`InitSDK()`輸入：
     + 如果您計劃使用 Amazon GameLift Servers 代理程式將遊戲伺服器組建部署到Amazon GameLift Servers受管 EC2 機群或 Anywhere 機群：

       呼叫`InitSDK()`無參數 ([C\$1\$1](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-initsdk)) ([C\$1](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-initsdk)) ([Unreal](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-initsdk))。此呼叫會設定運算環境以及與 Amazon GameLift Servers服務的 WebSocket 連線。
     + 如果您打算在沒有 Amazon GameLift Servers 代理程式的情況下，將遊戲伺服器組建部署到 Anywhere 機群：

       `InitSDK()` 使用伺服器參數 ([C\$1\$1](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-initsdk-anywhere)) ([C\$1](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-initsdk-anywhere)) ([Unreal](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-initsdk-anywhere)) 呼叫 。遊戲伺服器程序使用這些參數來建立與服務的連線Amazon GameLift Servers。

1. 如果您的遊戲伺服器建置或其他託管應用程式在執行時與其他 AWS 資源通訊，您將需要變更應用程式存取這些資源的方式。以新的伺服器 SDK `AssumeRoleCredentials` 動作 `GetFleetRoleCredentials()`（適用於遊戲伺服器） 取代 的使用，或使用共用的登入資料 （適用於其他應用程式）。如需如何實作此變更的詳細資訊，請參閱 [將Amazon GameLift Servers託管遊戲伺服器連接到其他 AWS 資源](gamelift-sdk-server-resources.md)。

1. 如果您的專案呼叫伺服器 SDK 動作`GetInstanceCertificate()`來擷取 TLS 憑證，請修改您的程式碼以改用新的 `GetComputeCertificate()`([C\$1\$1](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-getcomputecertificate)) ([C\$1](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-getcomputecertificate)) ([Unreal](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-getcomputecertificate))。

1. 將遊戲組建上傳至 Amazon GameLift Servers（例如使用 [upload-build](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/gamelift/upload-build.html) 或 [CreateBuild()](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_CreateBuild.html)) 時，請將 `ServerSdkVersion` 參數設定為您正在使用的 5.x 版本 （此參數目前預設為 4.0.2)。此參數必須符合遊戲伺服器組建中的實際伺服器 SDK 程式庫。如果您為上傳的遊戲伺服器組建指定錯誤的版本，則使用該組建建立的任何機群都會失敗。請參閱 [為 建立遊戲伺服器組建 Amazon GameLift Servers](gamelift-build-cli-uploading.md)。

   下列範例說明如何指定伺服器 SDK 版本：

   ```
   aws gamelift upload-build \
       --operating-system AMAZON_LINUX_2023 \
       --server-sdk-version "5.0.0" \
       --build-root "~/mygame" \
       --name "My Game Nightly Build" \
       --build-version "build 255" \
       --region us-west-2
   ```

1. 如果您使用指令碼遠端連線至受管機群，請更新指令碼以使用新程序，如中所述[連線至機群執行個體](fleets-remote-access.md)。

# 適用於 -- 動作的 C\$1\$1 伺服器 SDK Amazon GameLift Servers 5.x
<a name="integration-server-sdk5-cpp-actions"></a>

使用伺服器 SDK 5.x 參考整合多玩家遊戲，以便與 進行託管。 Amazon GameLift Servers如需整合程序的指引，請參閱 [使用伺服器 SDK 將 Amazon GameLift Servers新增至您的遊戲伺服器](gamelift-sdk-server-api.md)。

**注意**  
本主題說明使用 Amazon GameLift Servers C\$1\$1 標準程式庫 () 建置時可以使用的 C\$1\$1 API`std`。具體而言，本文件適用於您使用 `-DDGAMELIFT_USE_STD=1`選項編譯的程式碼。

# 適用於 -- 資料類型的 C\$1\$1 伺服器 SDK Amazon GameLift Servers 5.x
<a name="integration-server-sdk5-cpp-datatypes"></a>

使用 Amazon GameLift Servers C\$1\$1 伺服器 SDK 5.x 參考整合您的多玩家遊戲，以便與 進行託管。 Amazon GameLift Servers如需整合程序的指引，請參閱 [使用伺服器 SDK 將 Amazon GameLift Servers新增至您的遊戲伺服器](gamelift-sdk-server-api.md)。

**注意**  
本主題說明使用 Amazon GameLift Servers C\$1\$1 標準程式庫 () 建置時可以使用的 C\$1\$1 API`std`。具體而言，本文件適用於您使用 `-DDGAMELIFT_USE_STD=1`選項編譯的程式碼。

[適用於 -- 動作的 C\$1\$1 伺服器 SDK Amazon GameLift Servers 5.x](integration-server-sdk5-cpp-actions.md)

**Topics**
+ [LogParameters](#integration-server-sdk5-cpp-dataypes-log)
+ [MetricsParameters](#integration-server-sdk5-cpp-datatypes-metricsparameters)
+ [ProcessParameters](#integration-server-sdk5-cpp-dataypes-process)
+ [UpdateGameSession](#integration-server-sdk5-cpp-dataypes-updategamesession)
+ [GameSession](#integration-server-sdk5-cpp-dataypes-gamesession)
+ [ServerParameters](#integration-server-sdk5-cpp-dataypes-serverparameters)
+ [StartMatchBackfillRequest](#integration-server-sdk5-cpp-dataypes-startmatchbackfillrequest)
+ [Player](#integration-server-sdk5-cpp-dataypes-player)
+ [DescribePlayerSessionsRequest](#integration-server-sdk5-cpp-dataypes-playersessions)
+ [StopMatchBackfillRequest](#integration-server-sdk5-cpp-dataypes-stopmatchbackfillrequest)
+ [AttributeValue](#integration-server-sdk5-cpp-dataypes-attributevalue)
+ [GetFleetRoleCredentialsRequest](#integration-server-sdk5-cpp-dataypes-getfleetrolecredentialsrequest)
+ [AwsLongOutcome](#integration-server-sdk5-cpp-datatypes-awslongoutcome)
+ [AwsStringOutcome](#integration-server-sdk5-cpp-datatypes-awsstringoutcome)
+ [DescribePlayerSessionsOutcome](#integration-server-sdk5-cpp-datatypes-describeplayersessionsoutcome)
+ [DescribePlayerSessionsResult](#integration-server-sdk5-cpp-datatypes-describeplayersessionsresult)
+ [GenericOutcome](#integration-server-sdk5-cpp-datatypes-genericoutcome)
+ [GenericOutcomeCallable](#integration-server-sdk5-cpp-datatypes-genericoutcomecallable)
+ [PlayerSession](#integration-server-sdk5-cpp-datatypes-playersession)
+ [StartMatchBackfillOutcome](#integration-server-sdk5-cpp-datatypes-startmatchbackfilloutcome)
+ [StartMatchBackfillResult](#integration-server-sdk5-cpp-datatypes-startmatchbackfillresult)
+ [GetComputeCertificateOutcome](#integration-server-sdk5-cpp-datatypes-getcomputecertificateoutcome)
+ [GetComputeCertificateResult](#integration-server-sdk5-cpp-datatypes-getcomputecertificateresult)
+ [GetFleetRoleCredentialsOutcome](#integration-server-sdk5-cpp-datatypes-getfleetrolecredentialsoutcome)
+ [GetFleetRoleCredentialsResult](#integration-server-sdk5-cpp-datatypes-getfleetrolecredentialsresult)
+ [InitSDKOutcome](#integration-server-sdk5-cpp-datatypes-initsdkoutcome)
+ [GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror)
+ [列舉](#integration-server-sdk5-cpp-dataypes-enums)

## LogParameters
<a name="integration-server-sdk5-cpp-dataypes-log"></a>

識別在遊戲工作階段期間產生的檔案的物件，Amazon GameLift Servers您想要在遊戲工作階段結束後上傳和存放。遊戲伺服器會將 Amazon GameLift Servers作為[ProcessReady()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-processready)呼叫中`ProcessParameters`物件的一部分`LogParameters`提供給 。


|  |  | 
| --- |--- |
|  **屬性**  | Description | 
| LogPaths |  Amazon GameLift Servers 您要存放以供日後存取的遊戲伺服器日誌檔案的目錄路徑清單。伺服器程序會在每個遊戲工作階段期間產生這些檔案。您可以在遊戲伺服器中定義檔案路徑和名稱，並將其存放在根遊戲建置目錄中。 日誌路徑必須是絕對的。例如，如果您的遊戲組建將遊戲工作階段日誌儲存在類似 的路徑中`MyGame\sessionLogs\`，則該路徑將位於 Windows 執行個體`c:\game\MyGame\sessionLogs`上。 **Type (類型)**：`std:vector<std::string>` **必要**：否  | 

## MetricsParameters
<a name="integration-server-sdk5-cpp-datatypes-metricsparameters"></a>

使用此資料類型來設定遊戲伺服器的指標收集和當機報告。遊戲伺服器會在 [InitMetrics()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-initmetrics)呼叫Amazon GameLift Servers中`MetricsParameters`與 通訊。


|  |  | 
| --- |--- |
|  **屬性**  | Description | 
| StatsdHost |  用於指標收集的 StatsD 伺服器主機名稱或 IP 地址。 **Type (類型)**：`std::string` **必要**：否  | 
| StatsdPort |  用於指標收集的 StatsD 伺服器連接埠號碼。 **Type (類型)**：`int` **必要**：否  | 
| CrashReporterHost |  損毀報告程式伺服器的主機名稱或 IP 地址。 **Type (類型)**：`std::string` **必要**：否  | 
| CrashReporterPort |  損毀報告程式伺服器的連接埠號碼。 **Type (類型)**：`int` **必要**：否  | 
| FlushIntervalMs |  將指標資料排清至伺服器的間隔，以毫秒為單位。 **Type (類型)**：`int` **必要**：否  | 
| MaxPacketSize |  傳送至伺服器的指標封包大小上限，以位元組為單位。 **Type (類型)**：`int` **必要**：否  | 

## ProcessParameters
<a name="integration-server-sdk5-cpp-dataypes-process"></a>

此資料類型包含傳送至 Amazon GameLift Servers的一組參數[ProcessReady()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-processready)。


|  |  | 
| --- |--- |
|  **屬性**  | Description | 
| LogParameters | 具有在遊戲工作階段期間產生之檔案目錄路徑的物件。 會Amazon GameLift Servers複製和存放檔案以供日後存取。**Type (類型)**：`Aws::GameLift::Server::LogParameters`**必要**：否 | 
| OnHealthCheck | Amazon GameLift Servers 呼叫 從伺服器程序請求運作狀態報告的回呼函數。 每 60 秒會Amazon GameLift Servers呼叫此函數，並等待 60 秒進行回應。FALSE 如果運作狀態TRUE良好，伺服器程序會傳回 。如果未傳回任何回應， 會將伺服器程序Amazon GameLift Servers記錄為運作狀態不佳。**Type (類型)**：`std::function<bool()> onHealthCheck`**必要**：否 | 
| OnProcessTerminate | Amazon GameLift Servers 呼叫 以強制伺服器程序關閉的回呼函數。呼叫此函數後， 會Amazon GameLift Servers等待 5 分鐘讓伺服器程序關閉，並在關閉伺服器程序之前回應[ProcessEnding()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-processending)呼叫。**Type (類型)**：`std::function<void()> onProcessTerminate`**必要**：是 | 
| OnStartGameSession | Amazon GameLift Servers 叫用以啟用新遊戲工作階段的回呼函數。 會Amazon GameLift Servers呼叫此函數以回應用戶端請求 [CreateGameSession](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_CreateGameSession.html)。回呼函數會傳遞[GameSession](#integration-server-sdk5-cpp-dataypes-gamesession)物件。**Type (類型)**：`const std::function<void(Aws::GameLift::Model::GameSession)> onStartGameSession`**必要**：是 | 
| OnUpdateGameSession | Amazon GameLift Servers 呼叫 以將更新後的遊戲工作階段物件傳遞至伺服器程序的回呼函數。 會在處理配對回填請求時Amazon GameLift Servers呼叫此函數，以提供更新後的配對建構器資料。它會傳遞[GameSession](#integration-server-sdk5-cpp-dataypes-gamesession)物件、狀態更新 (updateReason) 和相符回填票證 ID。**Type (類型)**：`std::function<void(Aws::GameLift::Server::Model::UpdateGameSession)> onUpdateGameSession`**必要**：否 | 
| 站點 | 伺服器程序接聽新玩家連線的連接埠號碼。值必須屬於為部署此遊戲伺服器組建之機群所設定的連接埠範圍。此連接埠號碼包含在遊戲工作階段和遊戲工作階段物件中，遊戲工作階段會使用該物件來連接到伺服器程序。**Type (類型)**：`Integer`**必要**：是 | 

## UpdateGameSession
<a name="integration-server-sdk5-cpp-dataypes-updategamesession"></a>

此資料類型會更新至遊戲工作階段物件，其中包括遊戲工作階段已更新的原因，以及如果回填用於填入遊戲工作階段中的玩家工作階段，則相關的回填票證 ID。


| Properties | **Description** | 
| --- | --- | 
| GameSession | [GameSession](#integration-server-sdk5-cpp-dataypes-gamesession) 物件。GameSession 物件包含描述遊戲工作階段的屬性。**Type (類型)**：`Aws::GameLift::Server::GameSession`**必要**：是 | 
| UpdateReason | 正在更新遊戲工作階段的原因。**Type (類型)**：`Aws::GameLift::Server::UpdateReason`**必要**：是 | 
| BackfillTicketId | 嘗試更新遊戲工作階段的回填票證 ID。**Type (類型)**：`std::string`**必要**：否 | 

## GameSession
<a name="integration-server-sdk5-cpp-dataypes-gamesession"></a>

此資料類型提供遊戲工作階段的詳細資訊。


| Properties | **Description** | 
| --- | --- | 
| GameSessionId |  遊戲工作階段的唯一識別符。遊戲工作階段 ARN 的格式如下：`arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token>`。 **Type (類型)**：`std::string` **必要**：否  | 
| 名稱 |  遊戲工作階段的描述性標籤。 **Type (類型)**：`std::string` **必要**：否  | 
| FleetId |  遊戲工作階段執行所在的機群的唯一識別符。 **Type (類型)**：`std::string` **必要**：否  | 
| MaximumPlayerSessionCount |  遊戲工作階段的玩家連線數目上限。 **Type (類型)**：`int` **必要**：否  | 
| 站點 |  遊戲工作階段的連接埠號碼。若要連線到Amazon GameLift Servers遊戲伺服器，應用程式需要 IP 地址和連接埠號碼。 **Type (類型)**：`in` **必要**：否  | 
| IpAddress |  遊戲工作階段的 IP 地址。若要連線到Amazon GameLift Servers遊戲伺服器，應用程式需要 IP 地址和連接埠號碼。 **Type (類型)**：`std::string` **必要**：否  | 
| GameSessionData |  一組自訂遊戲工作階段屬性，格式為單一字串值。 **Type (類型)**：`std::string` **必要**：否  | 
| MatchmakerData |  用於建立遊戲工作階段的配對程序資訊，以 JSON 語法格式化為字串。除了使用的配對組態之外，還包含指派給配對的所有玩家的資料，包括玩家屬性和團隊指派。 **Type (類型)**：`std::string` **必要**：否  | 
| GameProperties |  一組遊戲工作階段的自訂屬性，格式為 key：value 對。這些屬性會與啟動新遊戲工作階段的請求一起傳遞。 **Type (類型)**：`std :: vector < GameProperty >` **必要**：否  | 
| DnsName |  指派給執行遊戲工作階段之執行個體的 DNS 識別符。值的格式如下： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/gameliftservers/latest/developerguide/integration-server-sdk5-cpp-datatypes.html) 連線至在啟用 TLS 的機群上執行的遊戲工作階段時，您必須使用 DNS 名稱，而不是 IP 地址。 **Type (類型)**：`std::string` **必要**：否  | 

## ServerParameters
<a name="integration-server-sdk5-cpp-dataypes-serverparameters"></a>

遊戲伺服器程序用來建立與服務連線的資訊Amazon GameLift Servers。[InitSDK()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-initsdk-anywhere) 只有在遊戲伺服器建置將部署到沒有 Amazon GameLift Servers代理程式的 Anywhere 機群或容器機群時，才呼叫時包含這些參數。對於所有其他部署案例，請呼叫 [InitSDK()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-initsdk)而不使用參數。


| Properties | **Description** | 
| --- | --- | 
| webSocketUrl |  當您[https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)使用 Amazon GameLift Servers Anywhere 運算資源時， 會`GameLiftServerSdkEndpoint`Amazon GameLift Servers傳回 。 **Type (類型)**：`std::string` **必要**：是   | 
| processId |  向託管遊戲的伺服器程序註冊的唯一識別符。 **Type (類型)**：`std::string` **必要**：是  | 
| hostId | HostID 是當您註冊運算ComputeName時使用的 。如需詳細資訊，請參閱 [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)。**Type (類型)**：`std::string`**必要**：是 | 
| fleetId | 運算註冊目的地機群的唯一識別符。如需詳細資訊，請參閱 [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)。**Type (類型)**：`std::string`**必要**：是 | 
| authToken | 產生的身分驗證字符Amazon GameLift Servers，用於向 驗證您的伺服器Amazon GameLift Servers。如需詳細資訊，請參閱 [GetComputeAuthToken](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GetComputeAuthToken.html)。**Type (類型)**：`std::string`**必要**：是 | 

## StartMatchBackfillRequest
<a name="integration-server-sdk5-cpp-dataypes-startmatchbackfillrequest"></a>

用來建立配對回填請求的資訊。遊戲伺服器會在[StartMatchBackfill()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-startmatchbackfill)通話Amazon GameLift Servers中將此資訊傳達給 。


| Properties | **Description** | 
| --- | --- | 
| GameSessionArn |  唯一的遊戲工作階段識別符。API 操作會以 ARN 格式`[GetGameSessionId](https://docs.aws.amazon.com/gameliftservers/latest/developerguide/integration-server-sdk5-cpp-actions.html#integration-server-sdk5-cpp-getgamesessionid)`傳回識別符。 **Type (類型)**：`std::string` **必要**：是  | 
| MatchmakingConfigurationArn |  配對建構器用於此請求的唯一識別符，格式為 ARN。原始遊戲工作階段的配對建構器 ARN 位於配對建構器資料屬性中的遊戲工作階段物件中。進一步了解使用配對建構器資料中的[配對建構器資料](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-server.html#match-server-data.html)。 **Type (類型)**：`std::string` **必要**：是  | 
| Players |  一組資料，代表遊戲工作階段中的所有玩家。配對建構器使用此項資訊搜尋適合配對現有玩家的新玩家。 **Type (類型)**：`std::vector<Player>` **必要**：是  | 
| TicketId |  配對或配對回填請求票證的唯一識別符。如果您不提供值， Amazon GameLift Servers會產生值。您可使用此識別項依據需求追蹤配對回填票證狀態或取消要求。 **Type (類型)**：`std::string` **必要**：否  | 

## Player
<a name="integration-server-sdk5-cpp-dataypes-player"></a>

此資料類型代表配對中的玩家。啟動配對請求時，玩家會有玩家 ID、屬性和可能的延遲資料。 會在配對完成後Amazon GameLift Servers新增隊伍資訊。


| Properties | **Description** | 
| --- | --- | 
| LatencyInMS |  一組以毫秒為單位的值，指出玩家連線到某個位置時所經歷的延遲量。 如果使用此屬性，則玩家只會符合列出的位置。若配對構建器有評估玩家延遲的規則，玩家則必須回報延遲度，方可配對。 **Type (類型)**：`Dictionary<string,int>` **必要**：否  | 
| PlayerAttributes |  金鑰：值對的集合，其中包含用於配對的玩家資訊。玩家屬性金鑰必須符合配對規則集中使用的 PlayerAttributes。 如需玩家屬性的詳細資訊，請參閱 [AttributeValue](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_AttributeValue.html)。 **Type (類型)**：`std::map<std::string,AttributeValue>` **必要**：否  | 
| PlayerId |  玩家的唯一識別符。 **Type (類型)**：`std::string` **必要**：否  | 
| 團隊 |  玩家在配對中獲指派的隊伍名稱。您可以在配對規則集中定義團隊名稱。 **Type (類型)**：`std::string` **必要**：否  | 

## DescribePlayerSessionsRequest
<a name="integration-server-sdk5-cpp-dataypes-playersessions"></a>

指定要擷取哪些玩家工作階段的物件。伺服器程序會在[DescribePlayerSessions()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-describeplayersessions)呼叫 時提供此資訊Amazon GameLift Servers。


| Properties | **Description** | 
| --- | --- | 
| GameSessionId |  唯一的遊戲工作階段識別符。請使用此參數要求特定遊戲工作階段的所有玩家工作階段。 遊戲工作階段 ID 格式為 `arn:aws:gamelift:<region>::gamesession/fleet-<fleet ID>/<ID string>`。`GameSessionID` 是自訂 ID 字串或 **Type (類型)**：`std::string` **必要**：否  | 
| PlayerSessionId |  玩家工作階段的唯一識別符。使用此參數請求單一特定玩家工作階段。 **Type (類型)**：`std::string` **必要**：否  | 
| PlayerId |  玩家的唯一識別符。使用此參數來請求特定玩家的所有玩家工作階段。請參閱 [產生玩家 IDs](player-sessions-player-identifiers.md)。 **Type (類型)**：`std::string` **必要**：否  | 
| PlayerSessionStatusFilter |  要篩選結果的玩家工作階段狀態。可能的玩家工作階段狀態包括： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/gameliftservers/latest/developerguide/integration-server-sdk5-cpp-datatypes.html) **Type (類型)**：`std::string` **必要**：否  | 
| NextToken |  表示結果下一頁開始的字符。若要指定結果集的開頭，請不要提供值。如果您提供玩家工作階段 ID，則會忽略此參數。 **Type (類型)**：`std::string` **必要**：否  | 
| 限制 |  回傳結果的數量上限。如果您提供玩家工作階段 ID，則會忽略此參數。 **Type (類型)**：`int` **必要**：否  | 

## StopMatchBackfillRequest
<a name="integration-server-sdk5-cpp-dataypes-stopmatchbackfillrequest"></a>

用來取消配對回填請求的資訊。遊戲伺服器會在[StopMatchBackfill()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-stopmatchbackfill)通話中將此資訊傳達給 Amazon GameLift Servers 服務。


| Properties | **Description** | 
| --- | --- | 
| GameSessionArn |  取消請求的唯一遊戲工作階段識別符。 **Type (類型)**：`char[]` **必要**：否  | 
| MatchmakingConfigurationArn |  此請求傳送到的配對建構器的唯一識別符。 **Type (類型)**：`char[]` **必要**：否  | 
| TicketId |  要取消之回填請求票證的唯一識別符。 **Type (類型)**：`char[]` **必要**：否  | 

## AttributeValue
<a name="integration-server-sdk5-cpp-dataypes-attributevalue"></a>

在[Player](#integration-server-sdk5-cpp-dataypes-player)屬性鍵/值對中使用這些值。此物件可讓您使用任何有效的資料類型來指定屬性值：字串、數字、字串陣列或資料映射。每個`AttributeValue`物件必須完全使用其中一個可用的屬性：`S`、`SL`、 `N`或 `SDM`。


| Properties | Description | 
| --- | --- | 
| AttrType |  指定屬性值的類型。可能的屬性值類型包括： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/gameliftservers/latest/developerguide/integration-server-sdk5-cpp-datatypes.html) **必要**：否  | 
| S |  代表字串屬性值。 **Type (類型)**：`std::string` **必要**：否  | 
| N |  代表數值屬性值。 **Type (類型)**：`double` **必要**：否  | 
| SL |  代表字串屬性值的陣列。 **Type (類型)**：`std::vector<std::string>` **必要**：否  | 
| SDM |  代表字串索引鍵和雙值的字典。 **Type (類型)**：`std::map<std::string, double>` **必要**：否  | 

## GetFleetRoleCredentialsRequest
<a name="integration-server-sdk5-cpp-dataypes-getfleetrolecredentialsrequest"></a>

此資料類型可讓遊戲伺服器有限地存取您的其他 AWS 資源。如需詳細資訊，請參閱 [設定 的 IAM 服務角色 Amazon GameLift Servers](setting-up-role.md)。


| Properties | **Description** | 
| --- | --- | 
| RoleArn | 服務角色的 Amazon Resource Name (ARN)，可延伸 AWS 資源的有限存取權。**Type (類型)**：`std::string`**必要**：否 | 
| RoleSessionName | 角色工作階段名稱，可用來唯一識別 AWS Security Token Service [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) 工作階段。此名稱會在稽核日誌中公開，例如 CloudTrail 中的稽核日誌。**Type (類型)**：`std::string` **必要**：否  | 

## AwsLongOutcome
<a name="integration-server-sdk5-cpp-datatypes-awslongoutcome"></a>

此資料類型來自 動作，並產生具有下列屬性的物件：


| Properties | Description | 
| --- | --- | 
| 結果 |  動作的結果。 **Type (類型)**：`long` **必要**：否  | 
| ResultWithOwnership |   動作的結果會轉換為 rvalue，以便呼叫程式碼可以取得物件的擁有權。 **Type (類型)**：`long&&` **必要**：否  | 
| 成功 |  動作是否成功。 **Type (類型)**：`bool` **必要**：是  | 
| 錯誤 |  動作失敗時發生的錯誤。 **Type (類型)**：[GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **必要**：否  | 

## AwsStringOutcome
<a name="integration-server-sdk5-cpp-datatypes-awsstringoutcome"></a>

此資料類型來自 動作，並產生具有下列屬性的物件：


| Properties | Description | 
| --- | --- | 
| 結果 |  動作的結果。 **Type (類型)**：`std::string` **必要**：否  | 
| ResultWithOwnership |   動作的結果會轉換為 rvalue，以便呼叫程式碼可以取得物件的擁有權。 **Type (類型)**：`long&&` **必要**：否  | 
| 成功 |  動作是否成功。 **Type (類型)**：`bool` **必要**：是  | 
| 錯誤 |  動作失敗時發生的錯誤。 **Type (類型)**：[GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **必要**：否  | 

## DescribePlayerSessionsOutcome
<a name="integration-server-sdk5-cpp-datatypes-describeplayersessionsoutcome"></a>

此資料類型來自 動作，並產生具有下列屬性的物件：


| Properties | Description | 
| --- | --- | 
| 結果 |  動作的結果。 **Type (類型)**：[DescribePlayerSessionsResult](#integration-server-sdk5-cpp-datatypes-describeplayersessionsresult) **必要**：否   | 
| ResultWithOwnership |   動作的結果會轉換為 rvalue，以便呼叫程式碼可以取得物件的擁有權。 **Type (類型)**：`Aws::GameLift::Server::Model::DescribePlayerSessionsResult&&` **必要**：否  | 
| 成功 |  動作是否成功。 **Type (類型)**：`bool` **必要**：是  | 
| 錯誤 |  動作失敗時發生的錯誤。 **Type (類型)**：[GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **必要**：否  | 

## DescribePlayerSessionsResult
<a name="integration-server-sdk5-cpp-datatypes-describeplayersessionsresult"></a>

包含符合請求之每個玩家工作階段屬性的物件集合。


| Properties | Description | 
| --- | --- | 
| NextToken |  表示結果下一個序列頁面開始的字符。使用先前呼叫此操作時傳回的字符。若要從結果集的開頭開始，請勿指定值。若指定玩家工作階段 ID，此參數將遭到忽略。 **Type (類型)**：`std::string` **必要**：是  | 
| PlayerSessions |  **Type (類型)**：`IList<PlayerSession>` **必要**：  | 
| ResultWithOwnership |   動作的結果會轉換為 rvalue，以便呼叫程式碼可以取得物件的擁有權。 **Type (類型)**：`std::string&&` **必要**：否  | 
| 成功 |  動作是否成功。 **Type (類型)**：`bool` **必要**：是  | 
| 錯誤 |  動作失敗時發生的錯誤。 **Type (類型)**：[GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **必要**：否  | 

## GenericOutcome
<a name="integration-server-sdk5-cpp-datatypes-genericoutcome"></a>

此資料類型來自 動作，並產生具有下列屬性的物件：


| Properties | Description | 
| --- | --- | 
| 成功 |  動作是否成功。 **Type (類型)**：`bool` **必要**：是  | 
| 錯誤 |  動作失敗時發生的錯誤。 **Type (類型)**：[GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **必要**：否  | 

## GenericOutcomeCallable
<a name="integration-server-sdk5-cpp-datatypes-genericoutcomecallable"></a>

此資料類型是非同步的一般結果。它具有下列屬性：


| Properties | Description | 
| --- | --- | 
| 成功 |  動作是否成功。 **Type (類型)**：`bool` **必要**：是  | 
| 錯誤 |  動作失敗時發生的錯誤。 **Type (類型)**：[GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **必要**：否  | 

## PlayerSession
<a name="integration-server-sdk5-cpp-datatypes-playersession"></a>

此資料類型代表Amazon GameLift Servers傳遞至遊戲伺服器的玩家工作階段。如需詳細資訊，請參閱 [PlayerSession](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_PlayerSession.html)。


| Properties | Description | 
| --- | --- | 
| CreationTime |  **Type (類型)**：`long` **必要**：否  | 
| FleetId |  **Type (類型)**：`std::string` **必要**：否  | 
| GameSessionId |  **Type (類型)**：`std::string` **必要**：否  | 
| IpAddress |  **Type (類型)**：`std::string` **必要**：否  | 
| PlayerData |  **Type (類型)**：`std::string` **必要**：否  | 
| PlayerId |  **Type (類型)**：`std::string` **必要**：否  | 
| PlayerSessionId |  **Type (類型)**：`std::string` **必要**：否  | 
| 站點 |  **Type (類型)**：`int` **必要**：否  | 
| 狀態 |  用於篩選結果的玩家工作階段狀態。提供 PlayerSessionId 或 PlayerId 時，則 PlayerSessionStatusFilter 不會影響回應。 **類型：**`PlayerSessionStatus`列舉。可能的值包括以下： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/gameliftservers/latest/developerguide/integration-server-sdk5-cpp-datatypes.html) **必要**：否  | 
| TerminationTime |  **Type (類型)**：`long` **必要**：否  | 
| DnsName |  **Type (類型)**：`std::string` **必要**：否  | 

## StartMatchBackfillOutcome
<a name="integration-server-sdk5-cpp-datatypes-startmatchbackfilloutcome"></a>

此資料類型來自 動作，並產生具有下列屬性的物件：


| Properties | Description | 
| --- | --- | 
| 結果 |  動作的結果。 **Type (類型)**：[StartMatchBackfillResult](#integration-server-sdk5-cpp-datatypes-startmatchbackfillresult) **必要**：否  | 
| ResultWithOwnership |   動作的結果會轉換為 rvalue，以便呼叫程式碼可以取得物件的擁有權。 **Type (類型)**：`StartMatchBackfillResult&&` **必要**：否  | 
| 成功 |  動作是否成功。 **Type (類型)**：`bool` **必要**：是  | 
| 錯誤 |  動作失敗時發生的錯誤。 **Type (類型)**：[GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **必要**：否  | 

## StartMatchBackfillResult
<a name="integration-server-sdk5-cpp-datatypes-startmatchbackfillresult"></a>

此資料類型來自 動作，並產生具有下列屬性的物件：


| Properties | Description | 
| --- | --- | 
| TicketId |  配對票證的唯一識別符。如果此處未指定票證 ID， Amazon GameLift Servers將以 UUID 的形式產生票證 ID。使用此識別符來追蹤配對回填票證狀態，並擷取配對結果。 **Type (類型)**：`std::string` **必要**：否  | 

## GetComputeCertificateOutcome
<a name="integration-server-sdk5-cpp-datatypes-getcomputecertificateoutcome"></a>

此資料類型來自 動作，並產生具有下列屬性的物件：


| Properties | Description | 
| --- | --- | 
| 結果 |  動作的結果。 **Type (類型)**：[GetComputeCertificateResult](#integration-server-sdk5-cpp-datatypes-getcomputecertificateresult) **必要**：否   | 
| ResultWithOwnership |   動作的結果會轉換為 rvalue，以便呼叫程式碼可以取得物件的擁有權。 **Type (類型)**：`Aws::GameLift::Server::Model::GetComputeCertificateResult&&` **必要**：否  | 
| 成功 |  動作是否成功。 **Type (類型)**：`bool` **必要**：是  | 
| 錯誤 |  動作失敗時發生的錯誤。 **Type (類型)**：[GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **必要**：否  | 

## GetComputeCertificateResult
<a name="integration-server-sdk5-cpp-datatypes-getcomputecertificateresult"></a>

運算上 TLS 憑證的路徑和運算的主機名稱。


| Properties | Description | 
| --- | --- | 
| CertificatePath |  運算資源上 TLS 憑證的路徑。使用 Amazon GameLift Servers受管機群時，此路徑包含： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/gameliftservers/latest/developerguide/integration-server-sdk5-cpp-datatypes.html) **Type (類型)**：`std::string` **必要**：否  | 
| ComputeName |  運算資源的名稱。 **Type (類型)**：`std::string` **必要**：否  | 

## GetFleetRoleCredentialsOutcome
<a name="integration-server-sdk5-cpp-datatypes-getfleetrolecredentialsoutcome"></a>

此資料類型來自 動作，並產生具有下列屬性的物件：


| Properties | Description | 
| --- | --- | 
| 結果 |  動作的結果。 **Type (類型)**：[GetFleetRoleCredentialsResult](#integration-server-sdk5-cpp-datatypes-getfleetrolecredentialsresult) **必要**：否   | 
| ResultWithOwnership |   動作的結果會轉換為 rvalue，以便呼叫程式碼可以取得物件的擁有權。 **Type (類型)**：`Aws::GameLift::Server::Model::GetFleetRoleCredentialsResult` **必要**：否  | 
| 成功 |  動作是否成功。 **Type (類型)**：`bool` **必要**：是  | 
| 錯誤 |  動作失敗時發生的錯誤。 **Type (類型)**：[GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **必要**：否  | 

## GetFleetRoleCredentialsResult
<a name="integration-server-sdk5-cpp-datatypes-getfleetrolecredentialsresult"></a>


| Properties | Description | 
| --- | --- | 
| AccessKeyId |  要驗證並提供 AWS 資源存取權的存取金鑰 ID。 **Type (類型)**：`string` **必要**：否  | 
| AssumedRoleId |  服務角色所屬的使用者 ID。 **Type (類型)**：`string` **必要**：否  | 
| AssumedRoleUserArn |  服務角色所屬使用者的 Amazon Resource Name (ARN)。 **Type (類型)**：`string` **必要**：否  | 
| Expiration |  工作階段登入資料過期前的時間長度。 **Type (類型)**：`DateTime` **必要**：否  | 
| SecretAccessKey |  用於身分驗證的私密存取金鑰 ID。 **Type (類型)**：`string` **必要**：否  | 
| SessionToken |  識別目前作用中工作階段與 AWS 資源互動的字符。 **Type (類型)**：`string` **必要**：否  | 
| 成功 |  動作是否成功。 **Type (類型)**：`bool` **必要**：是  | 
| 錯誤 |  動作失敗時發生的錯誤。 **Type (類型)**：[GameLiftError](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-gamelifterror) **必要**：否  | 

## InitSDKOutcome
<a name="integration-server-sdk5-cpp-datatypes-initsdkoutcome"></a>

**注意**  
`InitSDKOutcome` 只有在您使用 `std`旗標建置 SDK 時，才會傳回 。如果您使用 `nostd`旗標建置 ，[GenericOutcome](#integration-server-sdk5-cpp-datatypes-genericoutcome)則會改為傳回 。


| Properties | Description | 
| --- | --- | 
| 成功 |  動作是否成功。 **Type (類型)**：`bool` **必要**：是  | 
| 錯誤 |  動作失敗時發生的錯誤。 **Type (類型)**：[GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **必要**：否  | 

## GameLiftError
<a name="integration-server-sdk5-cpp-datatypes-gamelifterror"></a>


| Properties | Description | 
| --- | --- | 
| ErrorType |  錯誤類型。 **類型：**`GameLiftErrorType`[列舉](#integration-server-sdk5-cpp-dataypes-enums)。 **必要**：否   | 
| ErrorName |  錯誤的名稱。  **Type (類型)**：`std::string` **必要**：否   | 
| ErrorMessage |  錯誤訊息。  **Type (類型)**：`std::string` **必要**：否   | 

## 列舉
<a name="integration-server-sdk5-cpp-dataypes-enums"></a>

為適用於 Amazon GameLift Servers(C\$1\$1) 的伺服器 SDK 定義的列舉定義如下：

**GameLiftErrorType**  
指出錯誤類型的字串值。有效值包含：  
+ **BAD\$1REQUEST\$1EXCEPTION** 
+ **GAMESESSION\$1ID\$1NOT\$1SET** – 尚未設定遊戲工作階段 ID。
+ **INTERNAL\$1SERVICE\$1EXCEPTION** 
+ **LOCAL\$1CONNECTION\$1FAILED** – 與 的本機連線Amazon GameLift Servers失敗。
+ **NETWORK\$1NOT\$1INITIALIZED** – 網路尚未初始化。
+ **SERVICE\$1CALL\$1FAILED** – 呼叫 AWS 服務失敗。
+ **WEBSOCKET\$1CONNECT\$1FAILURE** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1FORBIDDEN** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1INVALID\$1URL** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1TIMEOUT** 
+ **ALREADY\$1INITIALIZED** – Amazon GameLift Servers 伺服器或用戶端已使用 Initialize() 初始化。
+ **FLEET\$1MISMATCH** – 目標機群與 gameSession 或 playerSession 的機群不相符。
+ **GAMELIFT\$1CLIENT\$1NOT\$1INITIALIZED** – Amazon GameLift Servers用戶端尚未初始化。
+ **GAMELIFT\$1SERVER\$1NOT\$1INITIALIZED** – Amazon GameLift Servers 伺服器尚未初始化。
+ **GAME\$1SESSION\$1ENDED\$1FAILED** – 的 伺服器開發套件Amazon GameLift Servers無法聯絡 服務以報告遊戲工作階段已結束。
+ **GAME\$1SESSION\$1NOT\$1READY** – Amazon GameLift Servers 伺服器遊戲工作階段未啟用。
+ **GAME\$1SESSION\$1READY\$1FAILED** – 的伺服器 SDK Amazon GameLift Servers 無法聯絡 服務來報告遊戲工作階段已就緒。
+ **INITIALIZATION\$1MISMATCH** – 在 Server：：Initialize() 之後呼叫用戶端方法，反之亦然。
+ **NOT\$1INITIALIZED** – Amazon GameLift Servers 伺服器或用戶端尚未使用 Initialize() 初始化。
+ **NO\$1TARGET\$1ALIASID\$1SET** – 尚未設定目標aliasId。
+ **NO\$1TARGET\$1FLEET\$1SET** – 尚未設定目標機群。
+ **PROCESS\$1ENDING\$1FAILED** – 的伺服器 SDK Amazon GameLift Servers 無法聯絡 服務來報告程序即將結束。
+ **PROCESS\$1NOT\$1ACTIVE** – 伺服器程序尚未啟動、未繫結至 GameSession，且無法接受或處理 PlayerSessions。
+ **PROCESS\$1NOT\$1READY** – 伺服器程序尚未準備好啟用。
+ **PROCESS\$1READY\$1FAILED** – 的伺服器 SDK Amazon GameLift Servers 無法聯絡 服務以報告程序已就緒。
+ **SDK\$1VERSION\$1DETECTION\$1FAILED** – SDK 版本偵測失敗。
+ **STX\$1CALL\$1FAILED** – 呼叫 XStx 伺服器後端元件失敗。
+ **STX\$1INITIALIZATION\$1FAILED** – XStx 伺服器後端元件無法初始化。
+ **UNEXPECTED\$1PLAYER\$1SESSION** – 伺服器遇到未註冊的玩家工作階段。
+ **WEBSOCKET\$1CONNECT\$1FAILURE** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1FORBIDDEN** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1INVALID\$1URL** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1TIMEOUT** 
+ **WEBSOCKET\$1RETRIABLE\$1SEND\$1MESSAGE\$1FAILURE** – 將訊息傳送至 GameLift Service WebSocket 的可重試失敗。
+ **WEBSOCKET\$1SEND\$1MESSAGE\$1FAILURE** – 無法傳送訊息至 GameLift Service WebSocket。
+ **MATCH\$1BACKFILL\$1REQUEST\$1VALIDATION** – 驗證請求失敗。
+ **PLAYER\$1SESSION\$1REQUEST\$1VALIDATION** – 驗證請求失敗。

**PlayerSessionCreationPolicy**  
字串值代表遊戲工作階段是否可接受新玩家。有效值包含：  
+ **ACCEPT\$1ALL** – 接受所有新玩家工作階段。
+ **DENY\$1ALL** – 拒絕所有新玩家工作階段。
+ **NOT\$1SET** – 遊戲工作階段未設定為接受或拒絕新的玩家工作階段。

[適用於 -- 資料類型的 C\$1\$1 伺服器 SDK Amazon GameLift Servers 5.x](integration-server-sdk5-cpp-datatypes.md)

**Topics**
+ [適用於 -- 資料類型的 C\$1\$1 伺服器 SDK Amazon GameLift Servers 5.x](integration-server-sdk5-cpp-datatypes.md)
+ [GetSdkVersion()](#integration-server-sdk5-cpp-getsdkversion)
+ [InitMetrics()](#integration-server-sdk5-cpp-initmetrics)
+ [InitSDK()](#integration-server-sdk5-cpp-initsdk)
+ [InitSDK()](#integration-server-sdk5-cpp-initsdk-anywhere)
+ [ProcessReady()](#integration-server-sdk5-cpp-processready)
+ [ProcessReadyAsync()](#integration-server-sdk5-cpp-processreadyasync)
+ [ProcessEnding()](#integration-server-sdk5-cpp-processending)
+ [ActivateGameSession()](#integration-server-sdk5-cpp-activategamesession)
+ [UpdatePlayerSessionCreationPolicy()](#integration-server-sdk5-cpp-updateplayersessioncreationpolicy)
+ [GetGameSessionId()](#integration-server-sdk5-cpp-getgamesessionid)
+ [GetTerminationTime()](#integration-server-sdk5-cpp-getterm)
+ [AcceptPlayerSession()](#integration-server-sdk5-cpp-acceptplayersession)
+ [RemovePlayerSession()](#integration-server-sdk5-cpp-removeplayersession)
+ [DescribePlayerSessions()](#integration-server-sdk5-cpp-describeplayersessions)
+ [StartMatchBackfill()](#integration-server-sdk5-cpp-startmatchbackfill)
+ [StopMatchBackfill()](#integration-server-sdk5-cpp-stopmatchbackfill)
+ [GetComputeCertificate()](#integration-server-sdk5-cpp-getcomputecertificate)
+ [GetFleetRoleCredentials()](#integration-server-sdk5-cpp-getfleetrolecredentials)
+ [Destroy()](#integration-server-sdk5-cpp-ref-destroy)

## GetSdkVersion()
<a name="integration-server-sdk5-cpp-getsdkversion"></a>

傳回內建至伺服器程序的目前開發套件版本編號。

### 語法
<a name="integration-server-sdk5-cpp-getsdkversion-syntax"></a>

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

### 傳回值
<a name="integration-server-sdk5-cpp-getsdkversion-return"></a>

如果成功，將目前開發套件版本以 [AwsStringOutcome](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-awsstringoutcome) 物件傳回。傳回的物件包含版本編號 （範例 `5.0.0`)。如果不成功，則會傳回錯誤訊息。

### 範例
<a name="integration-server-sdk5-cpp-getsdkversion-example"></a>

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

## InitMetrics()
<a name="integration-server-sdk5-cpp-initmetrics"></a>

初始化指標系統，以收集和報告伺服器效能資料。為了獲得最佳結果，請在 之前呼叫此方法[InitSDK()](#integration-server-sdk5-cpp-initsdk)，以在 SDK 初始化期間啟用指標收集。

### 語法
<a name="integration-server-sdk5-cpp-initmetrics-syntax"></a>

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

### Parameters
<a name="integration-server-sdk5-cpp-initmetrics-parameter"></a>

[MetricsParameters](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-metricsparameters) (選用)  
指標集合的組態參數。如果未提供， 會使用可由環境變數覆寫的預設值。

### 傳回值
<a name="integration-server-sdk5-cpp-initmetrics-return"></a>

如果成功， 會傳回表示成功的[GenericOutcome](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-genericoutcome)物件。如果不成功，則會傳回錯誤訊息。

### 範例
<a name="integration-server-sdk5-cpp-initmetrics-example"></a>

```
// 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
}
```

## InitSDK()
<a name="integration-server-sdk5-cpp-initsdk"></a>

初始化 Amazon GameLift Servers 開發套件。在啟動時，在與 相關的任何其他初始化步驟之前呼叫此方法Amazon GameLift Servers。此動作會從主機環境讀取伺服器參數，以設定遊戲伺服器程序與服務之間的通訊Amazon GameLift Servers。它使用等冪符記，因此您可以在失敗時安全地重試此呼叫。

如果遊戲伺服器組建在沒有Amazon GameLift Servers代理程式的情況下部署到 Amazon GameLift Servers Anywhere 機群或容器機群，請呼叫 [InitSDK()](#integration-server-sdk5-cpp-initsdk-anywhere)並指定一組伺服器參數。

### 語法
<a name="integration-server-sdk5-cpp-initsdk-syntax"></a>

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

### 傳回值
<a name="integration-server-sdk5-cpp-initsdk-return"></a>

傳回 [InitSDKOutcome](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-initsdkoutcome) 物件，指出伺服器程序是否已準備好呼叫 [ProcessReady()](#integration-server-sdk5-cpp-processready)。

### 範例
<a name="integration-server-sdk5-cpp-initsdk-example"></a>

```
//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()
<a name="integration-server-sdk5-cpp-initsdk-anywhere"></a>

初始化 Amazon GameLift Servers 開發套件。在啟動時，在與 相關的任何其他初始化步驟之前呼叫此方法Amazon GameLift Servers。此動作需要一組伺服器參數，才能設定遊戲伺服器程序與 Amazon GameLift Servers服務之間的通訊。它使用等冪符記，因此您可以在失敗時安全地重試此呼叫。

如果遊戲伺服器建置將部署到Amazon GameLift Servers受管 EC2 機群，或使用 Amazon GameLift Servers 代理程式部署到 Amazon GameLift Servers Anywhere 機群或容器機群，請呼叫 [InitSDK()](#integration-server-sdk5-cpp-initsdk) 而不使用伺服器參數。

### 語法
<a name="integration-server-sdk5-cpp-initsdk-anywhere-syntax"></a>

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

### Parameters
<a name="integration-server-sdk5-cpp-initsdk-anywhere-parameter"></a>

[ServerParameters](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-serverparameters)  
若要在 Amazon GameLift Servers Anywhere 機群上初始化遊戲伺服器，請使用下列資訊建構`ServerParameters`物件：  
+ 用來連線至遊戲伺服器的 WebSocket URL。
+ 用於託管遊戲伺服器的程序 ID。
+ 託管遊戲伺服器程序的運算 ID。
+ 包含 Amazon GameLift Servers Anywhere 運算的Amazon GameLift Servers機群 ID。
+ Amazon GameLift Servers 操作產生的授權字符。

### 傳回值
<a name="integration-server-sdk5-cpp-initsdk-anywhere-return"></a>

傳回 [InitSDKOutcome](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-initsdkoutcome) 物件，指出伺服器程序是否已準備好呼叫 [ProcessReady()](#integration-server-sdk5-cpp-processready)。

**注意**  
如果針對部署到 Anywhere 機群的遊戲組建呼叫`InitSDK()`失敗，請檢查建立組建資源時使用的`ServerSdkVersion`參數。您必須將此值明確設定為正在使用的伺服器 SDK 版本。此參數的預設值為 4.x，不相容。若要解決此問題，請建立新的組建，並將其部署到新的機群。

### 範例
<a name="integration-server-sdk5-cpp-initsdk-anywhere-example"></a>

Amazon GameLift Servers Anywhere 範例

```
//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()
<a name="integration-server-sdk5-cpp-processready"></a>

Amazon GameLift Servers 通知伺服器程序已準備好託管遊戲工作階段。叫用 後呼叫此方法[InitSDK()](#integration-server-sdk5-cpp-initsdk)。每個程序只能呼叫此方法一次。

### 語法
<a name="integration-server-sdk5-cpp-processready-syntax"></a>

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

### Parameters
<a name="integration-server-sdk5-cpp-processready-parameter"></a>

**processParameters**  
[ProcessParameters](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-process) 物件會傳達以下有關伺服器程序的資訊：  
+ 在遊戲伺服器程式碼中實作的回呼方法名稱，Amazon GameLift Servers服務會叫用它來與伺服器程序通訊。
+ 伺服器程序正在接聽的埠號。
+ 任何要 Amazon GameLift Servers 擷取並存放的遊戲工作階段特定檔案路徑。

### 傳回值
<a name="integration-server-sdk5-cpp-processready-return"></a>

傳回一般結果，其中包含成功或失敗以及錯誤訊息。

### 範例
<a name="integration-server-sdk5-cpp-processready-example"></a>

此範例會說明 [ProcessReady()](#integration-server-sdk5-cpp-processready) 呼叫和委派函數的實作。

```
// 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()
<a name="integration-server-sdk5-cpp-processreadyasync"></a>

若伺服器程序已準備好託管遊戲工作階段，則此動作會通知 Amazon GameLift Servers 服務。此方法應在伺服器程序準備好託管遊戲工作階段之後呼叫。參數會指定在特定情況下Amazon GameLift Servers要呼叫的回呼函數名稱。遊戲伺服器代碼必須實作上述函數。

此為非同步呼叫。若要進行同步呼叫，請使用 [ProcessReady()](#integration-server-sdk5-cpp-processready)。如需詳細資訊，請參閱[初始化伺服器程序](gamelift-sdk-server-api.md#gamelift-sdk-server-initialize)。

### 語法
<a name="integration-server-sdk5-cpp-processreadyasync-syntax"></a>

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

### Parameters
<a name="integration-server-sdk5-cpp-processreadyasync-parameter"></a>

**processParameters**  
[ProcessParameters](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-process) 物件會傳達以下有關伺服器程序的資訊：  
+ 在遊戲伺服器程式碼中實作的回呼方法名稱，Amazon GameLift Servers服務會叫用它來與伺服器程序通訊。
+ 伺服器程序正在接聽的埠號。
+ 任何要 Amazon GameLift Servers 擷取並存放的遊戲工作階段特定檔案路徑。
必要：是

### 傳回值
<a name="integration-server-sdk5-cpp-processreadyasync-return"></a>

傳回一般結果，其中包含成功或失敗以及錯誤訊息。

### 範例
<a name="integration-server-sdk5-cpp-processreadyasync-example"></a>

```
// 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()
<a name="integration-server-sdk5-cpp-processending"></a>

Amazon GameLift Servers 通知伺服器程序正在終止。在所有其他清除任務 （包括關閉作用中的遊戲工作階段） 之後，以及在終止程序之前，呼叫此方法。根據 的結果`ProcessEnding()`，程序會以成功 (0) 或錯誤 (-1) 結束並產生機群事件。如果程序因錯誤而終止，產生的機群事件為 `SERVER_PROCESS_TERMINATED_UNHEALTHY`。

### 語法
<a name="integration-server-sdk5-cpp-processending-syntax"></a>

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

### 傳回值
<a name="integration-server-sdk5-cpp-processending-return"></a>

傳回一般結果，其中包含成功或失敗以及錯誤訊息。

### 範例
<a name="integration-server-sdk5-cpp-processending-example"></a>

此範例會先呼叫 `ProcessEnding()`和 ，`Destroy()`再以成功或錯誤結束程式碼終止伺服器程序。

```
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()
<a name="integration-server-sdk5-cpp-activategamesession"></a>

Amazon GameLift Servers 通知伺服器程序已啟用遊戲工作階段，現在已準備好接收玩家連線。在所有遊戲工作階段初始化之後，應該呼叫此動作做為回`onStartGameSession()`呼函數的一部分。

### 語法
<a name="integration-server-sdk5-cpp-activategamesession-syntax"></a>

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

### 傳回值
<a name="integration-server-sdk5-cpp-activategamesession-return"></a>

傳回一般結果，其中包含成功或失敗以及錯誤訊息。

### 範例
<a name="integration-server-sdk5-cpp-activategamesession-example"></a>

此範例顯示`ActivateGameSession()`稱為`onStartGameSession()`委派函數的一部分。

```
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()
<a name="integration-server-sdk5-cpp-updateplayersessioncreationpolicy"></a>

更新目前遊戲工作階段的能力，以接受新的玩家工作階段。遊戲工作階段可設定為接受或拒絕所有新的玩家工作階段。

### 語法
<a name="integration-server-sdk5-cpp-updateplayersessioncreationpolicy-syntax"></a>

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

### Parameters
<a name="integration-server-sdk5-cpp-updateplayersessioncreationpolicy-parameter"></a>

**playerCreationSessionPolicy**  
類型：`PlayerSessionCreationPolicy`[列舉](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-enums)值。  
必要：是

### 傳回值
<a name="integration-server-sdk5-cpp-updateplayersessioncreationpolicy-return"></a>

傳回一般結果，其中包含成功或失敗以及錯誤訊息。

### 範例
<a name="integration-server-sdk5-cpp-updateplayersessioncreationpolicy-example"></a>

此範例設定目前遊戲工作階段的加入政策為可接受所有玩家。

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

## GetGameSessionId()
<a name="integration-server-sdk5-cpp-getgamesessionid"></a>

擷取作用中伺服器程序託管的遊戲工作階段 ID。

對於未使用遊戲工作階段啟用的閒置程序，呼叫會傳回 [GameLiftError](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-gamelifterror)。

### 語法
<a name="integration-server-sdk5-cpp-getgamesessionid-syntax"></a>

```
AwsStringOutcome GetGameSessionId()
```

### Parameters
<a name="integration-server-sdk5-cpp-getgamesessionid-parameter"></a>

此動作沒有參數。

### 傳回值
<a name="integration-server-sdk5-cpp-getgamesessionid-return"></a>

如果成功，則會把遊戲工作階段 ID 當成 [AwsStringOutcome](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-awsstringoutcome) 物件傳回。如果不成功，則會傳回錯誤訊息。

對於未使用遊戲工作階段啟用的閒置程序，呼叫會傳回 `Success`=`True` 和 `GameSessionId`=`""`。

### 範例
<a name="integration-server-sdk5-cpp-getgamesessionid-example"></a>

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

## GetTerminationTime()
<a name="integration-server-sdk5-cpp-getterm"></a>

若設有終止時間，即傳回伺服器程序排定關閉的時間。伺服器程序在收到來自 的回`onProcessTerminate()`呼後會採取動作Amazon GameLift Servers。 Amazon GameLift Servers會`onProcessTerminate()`呼叫 ，原因如下：
+ 當伺服器程序回報運作狀態不佳或未回應 時Amazon GameLift Servers。
+ 在縮減規模事件期間終止執行個體時。
+ 當執行個體因 [spot-instance 中斷](spot-tasks.md)而終止時。

### 語法
<a name="integration-server-sdk5-cpp-getterm-syntax"></a>

```
AwsDateTimeOutcome GetTerminationTime()
```

### 傳回值
<a name="integration-server-sdk5-cpp-getterm-return"></a>

如果成功， 會將終止時間傳回為 `AwsDateTimeOutcome` 物件。值是終止時間，以自 以來經過的刻度表示`0001 00:00:00`。例如，日期時間值`2020-09-13 12:26:40 -000Z`等於`637355968000000000`刻度。如果沒有可用的終止時間， 會傳回錯誤訊息。

如果程序尚未收到 ProcessParameters.OnProcessTerminate() 回呼，則會傳回錯誤訊息。如需關閉伺服器程序的詳細資訊，請參閱 [回應伺服器程序關閉通知](gamelift-sdk-server-api.md#gamelift-sdk-server-terminate)。

### 範例
<a name="integration-server-sdk5-cpp-getterm-example"></a>

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

## AcceptPlayerSession()
<a name="integration-server-sdk5-cpp-acceptplayersession"></a>

Amazon GameLift Servers 通知具有指定玩家工作階段 ID 的玩家已連線至伺服器程序，且需要驗證。 Amazon GameLift Servers 會驗證玩家工作階段 ID 是否有效。驗證玩家工作階段後， 會將玩家位置Amazon GameLift Servers的狀態從 RESERVED 變更為 ACTIVE。

### 語法
<a name="integration-server-sdk5-cpp-acceptplayersession-syntax"></a>

```
GenericOutcome AcceptPlayerSession(String playerSessionId)
```

### Parameters
<a name="integration-server-sdk5-cpp-acceptplayersession-parameter"></a>

playerSessionId  
建立新玩家工作階段Amazon GameLift Servers時由 發出的唯一 ID。

### 傳回值
<a name="integration-server-sdk5-cpp-acceptplayersession-return"></a>

傳回一般結果，其中包含成功或失敗以及錯誤訊息。

### 範例
<a name="integration-server-sdk5-cpp-acceptplayersession-example"></a>

此範例會處理連線請求，其中包含驗證和拒絕非有效的玩家工作階段 IDs。

```
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()
<a name="integration-server-sdk5-cpp-removeplayersession"></a>

Amazon GameLift Servers 通知玩家已中斷與伺服器程序的連線。作為回應， Amazon GameLift Servers 會將玩家位置變更為可用。

### 語法
<a name="integration-server-sdk5-cpp-removeplayersession-syntax"></a>

```
GenericOutcome RemovePlayerSession(String playerSessionId)
```

### Parameters
<a name="integration-server-sdk5-cpp-removeplayersession-parameter"></a>

**`playerSessionId`**  
建立新玩家工作階段Amazon GameLift Servers時由 發出的唯一 ID。

### 傳回值
<a name="integration-server-sdk5-cpp-removeplayersession-return"></a>

傳回一般結果，其中包含成功或失敗以及錯誤訊息。

### 範例
<a name="integration-server-sdk5-cpp-removeplayersession-example"></a>

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

## DescribePlayerSessions()
<a name="integration-server-sdk5-cpp-describeplayersessions"></a>

擷取玩家工作階段資料，其中包括設定、工作階段中繼資料和玩家資料。使用此方法取得下列相關資訊：
+ 單一玩家工作階段
+ 遊戲工作階段中的所有玩家工作階段
+ 與單一玩家 ID 相關聯的所有玩家工作階段

### 語法
<a name="integration-server-sdk5-cpp-describeplayersessions-syntax"></a>

```
DescribePlayerSessionsOutcome DescribePlayerSessions(DescribePlayerSessionsRequest describePlayerSessionsRequest)
```

### Parameters
<a name="integration-server-sdk5-cpp-describeplayersessions-parameter"></a>

**[DescribePlayerSessionsRequest](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-playersessions)**  
描述要擷取哪些玩家工作階段的[DescribePlayerSessionsRequest](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-playersessions)物件。

### 傳回值
<a name="integration-server-sdk5-cpp-describeplayersessions-return"></a>

如果成功，會傳回 [DescribePlayerSessionsOutcome](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-describeplayersessionsoutcome) 物件，內含一組與請求參數相符的玩家工作階段物件。

### 範例
<a name="integration-server-sdk5-cpp-describeplayersessions-example"></a>

此範例會請求主動連線到指定遊戲工作階段的所有玩家工作階段。透過省略 *NextToken* 並將*限制*值設定為 10， 會Amazon GameLift Servers傳回符合請求的前 10 個玩家工作階段記錄。

```
// 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()
<a name="integration-server-sdk5-cpp-startmatchbackfill"></a>

此動作會傳送請求，以便替 FlexMatch 所建立的遊戲工作階段​開放空位找到新玩家。如需詳細資訊，請參閱[FlexMatch回填功能](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html)。

此為非同步動作。如果新玩家相符， 會使用回呼函數 Amazon GameLift Servers交付更新的配對建構器資料`OnUpdateGameSession()`。

一個伺服器程序一次僅能有一個使用中的配對回填請求。若要發送新請求，請先呼叫 [StopMatchBackfill()](#integration-server-sdk5-cpp-stopmatchbackfill) 取消原始請求。

### 語法
<a name="integration-server-sdk5-cpp-startmatchbackfill-syntax"></a>

```
StartMatchBackfillOutcome StartMatchBackfill (StartMatchBackfillRequest startBackfillRequest);
```

### Parameters
<a name="integration-server-sdk5-cpp-startmatchbackfill-parameter"></a>

**[StartMatchBackfillRequest](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-startmatchbackfillrequest)**  
StartMatchBackfillRequest 物件，可傳達下列資訊：  
+ 指派給回填請求的票證 ID。此資訊是選用的；如果未提供 ID， Amazon GameLift Servers將產生一個 ID。
+ 傳送請求對象的配對建構器。必須填入完整的組態 ARN。此值位於遊戲工作階段的配對建構器資料中。
+ 要回填的遊戲工作階段 ID。
+ 遊戲工作階段目前玩家的可用配對資料。

### 傳回值
<a name="integration-server-sdk5-cpp-startmatchbackfill-return"></a>

傳回具有相符回填票證 ID 或失敗並顯示錯誤訊息的[StartMatchBackfillOutcome](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-startmatchbackfilloutcome)物件。

### 範例
<a name="integration-server-sdk5-cpp-startmatchbackfill-example"></a>

```
// 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()
<a name="integration-server-sdk5-cpp-stopmatchbackfill"></a>

取消作用中的配對回填請求。如需詳細資訊，請參閱[FlexMatch回填功能](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html)。

### 語法
<a name="integration-server-sdk5-cpp-stopmatchbackfill-syntax"></a>

```
GenericOutcome StopMatchBackfill (StopMatchBackfillRequest stopBackfillRequest);
```

### Parameters
<a name="integration-server-sdk5-cpp-stopmatchbackfill-parameter"></a>

**[StopMatchBackfillRequest](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-stopmatchbackfillrequest)**  
識別要取消之配對票證的 StopMatchBackfillRequest 物件：  
+ 指派給回填請求的票證 ID。
+ 回填請求傳送到的配對建構器。
+ 與回填請求相關聯的遊戲工作階段。

### 傳回值
<a name="integration-server-sdk5-cpp-stopmatchbackfill-return"></a>

傳回一般結果，其中包含成功或失敗以及錯誤訊息。

### 範例
<a name="integration-server-sdk5-cpp-stopmatchbackfill-example"></a>

```
// 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()
<a name="integration-server-sdk5-cpp-getcomputecertificate"></a>

擷取用於加密 Amazon GameLift Servers Anywhere 運算資源與 之間網路連線的 TLS 憑證路徑Amazon GameLift Servers。您可以在向 Amazon GameLift Servers Anywhere 機群註冊運算裝置時使用憑證路徑。如需詳細資訊，請參閱 [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)。

### 語法
<a name="integration-server-sdk5-cpp-getcomputecertificate-syntax"></a>

```
GetComputeCertificateOutcome Server::GetComputeCertificate()
```

### 傳回值
<a name="integration-server-sdk5-cpp-getcomputecertificate-return"></a>

傳回 [GetComputeCertificateOutcome](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-getcomputecertificateoutcome)。

### 範例
<a name="integration-server-sdk5-cpp-getcomputecertificate-example"></a>

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

## GetFleetRoleCredentials()
<a name="integration-server-sdk5-cpp-getfleetrolecredentials"></a>

擷取授權 與其他 互動的 IAM 角色登入Amazon GameLift Servers資料 AWS 服務。如需詳細資訊，請參閱[將Amazon GameLift Servers託管遊戲伺服器連接到其他 AWS 資源](gamelift-sdk-server-resources.md)。

### 語法
<a name="integration-server-sdk5-cpp-getfleetrolecredentials-syntax"></a>

```
GetFleetRoleCredentialsOutcome GetFleetRoleCredentials(GetFleetRoleCredentialsRequest request);
```

### Parameters
<a name="integration-server-sdk5-cpp-getfleetrolecredentials-parameters"></a>

[GetFleetRoleCredentialsRequest](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-getfleetrolecredentialsrequest)

### 傳回值
<a name="integration-server-sdk5-cpp-getfleetrolecredentials-return"></a>

其會傳回 [GetFleetRoleCredentialsOutcome](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-getfleetrolecredentialsoutcome) 物件。

### 範例
<a name="integration-server-sdk5-cpp-getfleetrolecredentials-example"></a>

```
// 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);
```

此範例顯示使用選用`RoleSessionName`值，將名稱指派給登入資料工作階段以進行稽核。如果您未提供角色工作階段名稱，則會使用預設值 "*【fleet-id】*-*【host-id】*"。

```
// 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);
```

## Destroy()
<a name="integration-server-sdk5-cpp-ref-destroy"></a>

從記憶體釋放Amazon GameLift Servers遊戲伺服器 SDK。最佳實務是在終止程序之後`ProcessEnding()`和之前呼叫此方法。如果您使用的是 Anywhere 機群，而且沒有在每次遊戲工作階段後終止伺服器程序，請在通知程序已準備好使用 託管遊戲工作階段之前，先呼叫 Amazon GameLift Servers `Destroy()`，然後`InitSDK()`重新初始化 `ProcessReady()`。

### 語法
<a name="integration-server-sdk5-cpp-ref-destroy-syntax"></a>

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

### Parameters
<a name="integration-server-sdk5-cpp-ref-destroy-parameter"></a>

沒有參數。

### 傳回值
<a name="integration-server-sdk5-cpp-ref-destroy-return"></a>

傳回一般結果，其中包含成功或失敗以及錯誤訊息。

### 範例
<a name="integration-server-sdk5-cpp-ref-destroy-example"></a>

```
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);
}
```

# 適用於 -- 動作的 C\$1 伺服器 SDK Amazon GameLift Servers 5.x
<a name="integration-server-sdk5-csharp-actions"></a>

使用伺服器 SDK 5.x 參考整合多玩家遊戲，以便與 進行託管。 Amazon GameLift Servers如需整合程序的指引，請參閱 [使用伺服器 SDK 將 Amazon GameLift Servers新增至您的遊戲伺服器](gamelift-sdk-server-api.md)。如果您使用的是 Unity 的 Amazon GameLift Servers 外掛程式，另請參閱 [Amazon GameLift Servers Unity 的外掛程式 （伺服器 SDK 5.x)](unity-plug-in.md)。

# 適用於 -- 資料類型的 C\$1 伺服器 SDK Amazon GameLift Servers 5.x
<a name="integration-server-sdk5-csharp-datatypes"></a>

使用 Amazon GameLift Servers C\$1 伺服器 SDK 5.x 參考整合您的多玩家遊戲，以便與 進行託管。 Amazon GameLift Servers如需整合程序的指引，請參閱 [使用伺服器 SDK 將 Amazon GameLift Servers新增至您的遊戲伺服器](gamelift-sdk-server-api.md)。如果您使用的是 Unity 的 Amazon GameLift Servers 外掛程式，另請參閱 [Amazon GameLift Servers Unity 的外掛程式 （伺服器 SDK 5.x)](unity-plug-in.md)。

[適用於 -- 動作的 C\$1 伺服器 SDK Amazon GameLift Servers 5.x](integration-server-sdk5-csharp-actions.md)

**Topics**
+ [LogParameters](#integration-server-sdk5-csharp-dataypes-log)
+ [MetricsParameters](#integration-server-sdk5-csharp-datatypes-metricsparameters)
+ [ProcessParameters](#integration-server-sdk5-csharp-dataypes-process)
+ [UpdateGameSession](#integration-server-sdk5-csharp-dataypes-updategamesession)
+ [GameSession](#integration-server-sdk5-csharp-dataypes-gamesession)
+ [ServerParameters](#integration-server-sdk5-csharp-dataypes-serverparameters)
+ [StartMatchBackfillRequest](#integration-server-sdk5-csharp-dataypes-startmatchbackfillrequest)
+ [Player](#integration-server-sdk5-csharp-dataypes-player)
+ [DescribePlayerSessionsRequest](#integration-server-sdk5-csharp-dataypes-playersessions)
+ [StopMatchBackfillRequest](#integration-server-sdk5-csharp-dataypes-stopmatchbackfillrequest)
+ [GetFleetRoleCredentialsRequest](#integration-server-sdk5-csharp-dataypes-getfleetrolecredentialsrequest)
+ [AttributeValue](#integration-server-sdk5-csharp-datatypes-attributevalue)
+ [AwsStringOutcome](#integration-server-sdk5-csharp-datatypes-awsstringoutcome)
+ [GenericOutcome](#integration-server-sdk5-csharp-datatypes-genericoutcome)
+ [MetricsManagerOutcome](#integration-server-sdk5-csharp-datatypes-metricsmanageroutcome)
+ [DescribePlayerSessionsOutcome](#integration-server-sdk5-csharp-datatypes-describeplayersessionsoutcome)
+ [DescribePlayerSessionsResult](#integration-server-sdk5-csharp-datatypes-describeplayersessionsresult)
+ [PlayerSession](#integration-server-sdk5-csharp-datatypes-playersession)
+ [StartMatchBackfillOutcome](#integration-server-sdk5-csharp-datatypes-startmatchbackfilloutcome)
+ [StartMatchBackfillResult](#integration-server-sdk5-csharp-datatypes-startmatchbackfillresult)
+ [GetComputeCertificateOutcome](#integration-server-sdk5-csharp-datatypes-getcomputecertificateoutcome)
+ [GetComputeCertificateResult](#integration-server-sdk5-csharp-datatypes-getcomputecertificateresult)
+ [GetFleetRoleCredentialsOutcome](#integration-server-sdk5-csharp-datatypes-getfleetrolecredentialsoutcome)
+ [GetFleetRoleCredentialsResult](#integration-server-sdk5-csharp-datatypes-getfleetrolecredentialsresult)
+ [AwsDateTimeOutcome](#integration-server-sdk5-csharp-datatypes-awsdatetimeoutcome)
+ [GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror)
+ [列舉](#integration-server-sdk5-csharp-datatypes-enums)

## LogParameters
<a name="integration-server-sdk5-csharp-dataypes-log"></a>

使用此資料類型來識別遊戲工作階段期間產生的檔案，您希望遊戲伺服器在遊戲工作階段結束後上傳到Amazon GameLift Servers這些檔案。遊戲伺服器會在[ProcessReady()](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-processready)呼叫`LogParameters to`Amazon GameLift Servers中通訊。


|  |  | 
| --- |--- |
|  **屬性**  | Description | 
| LogPaths |  Amazon GameLift Servers 您要存放以供日後存取的遊戲伺服器日誌檔案的目錄路徑清單。伺服器程序會在每個遊戲工作階段期間產生這些檔案。您可以在遊戲伺服器中定義檔案路徑和名稱，並將其存放在根遊戲建置目錄中。 日誌路徑必須是絕對的。例如，如果您的遊戲組建將遊戲工作階段日誌儲存在類似 的路徑中`MyGame\sessionLogs\`，則該路徑將位於 Windows 執行個體`c:\game\MyGame\sessionLogs`上。 **Type (類型)**：`List<String>` **必要**：否  | 

## MetricsParameters
<a name="integration-server-sdk5-csharp-datatypes-metricsparameters"></a>

使用此資料類型來設定遊戲伺服器的指標收集和當機報告。遊戲伺服器會在 [InitMetrics()](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-initmetrics)呼叫Amazon GameLift Servers中`MetricsParameters`與 通訊。


|  |  | 
| --- |--- |
|  **屬性**  | Description | 
| StatsdHost |  用於指標收集的 StatsD 伺服器主機名稱或 IP 地址。 **Type (類型)**：`String` **必要**：否  | 
| StatsdPort |  用於指標收集的 StatsD 伺服器連接埠號碼。 **Type (類型)**：`Integer` **必要**：否  | 
| CrashReporterHost |  損毀報告程式伺服器的主機名稱或 IP 地址。 **Type (類型)**：`String` **必要**：否  | 
| CrashReporterPort |  損毀報告程式伺服器的連接埠號碼。 **Type (類型)**：`Integer` **必要**：否  | 
| FlushIntervalMs |  將指標資料排清至伺服器的間隔，以毫秒為單位。 **Type (類型)**：`Integer` **必要**：否  | 
| MaxPacketSize |  傳送至伺服器的指標封包大小上限，以位元組為單位。 **Type (類型)**：`Integer` **必要**：否  | 

## ProcessParameters
<a name="integration-server-sdk5-csharp-dataypes-process"></a>

此資料類型包含在[ProcessReady()](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-processready)呼叫Amazon GameLift Servers中傳送至 的一組參數。


|  |  | 
| --- |--- |
|  **屬性**  | Description | 
| LogParameters | 具有遊戲工作階段日誌檔案目錄路徑清單的物件。**Type (類型)**：`Aws::GameLift::Server::LogParameters`**必要**：是 | 
| OnHealthCheck | Amazon GameLift Servers 呼叫 從伺服器程序請求運作狀態報告的回呼函數名稱。 每 60 秒會Amazon GameLift Servers呼叫此函數。呼叫此函數Amazon GameLift Servers等待回應 60 秒後，如果沒有收到回應， 會將伺服器程序Amazon GameLift Servers記錄為運作狀態不佳。**Type (類型)**：`void OnHealthCheckDelegate()`**必要**：是 | 
| OnProcessTerminate | Amazon GameLift Servers 叫用以強制伺服器程序關閉的回呼函數名稱。呼叫此函數後，Amazon GameLift Servers 會等待五分鐘，讓系統能關閉伺服器程序，並透過 [ProcessEnding()](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-processending) 呼叫進行回應，再將伺服器程序關閉。**Type (類型)**：`void OnProcessTerminateDelegate()`**必要**：是 | 
| OnStartGameSession | Amazon GameLift Servers 叫用以啟用新遊戲工作階段的回呼函數名稱。 會Amazon GameLift Servers呼叫此函數以回應用戶端請求 [CreateGameSession](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_CreateGameSession.html)。回呼函數會取得[GameSession](#integration-server-sdk5-csharp-dataypes-gamesession)物件。**Type (類型)**：`void OnStartGameSessionDelegate(GameSession)`**必要**：是 | 
| OnUpdateGameSession | Amazon GameLift Servers 呼叫 以將更新後的遊戲工作階段物件傳遞至伺服器程序的回呼函數名稱。 會在處理配對回填請求時Amazon GameLift Servers呼叫此函數，以提供更新的配對建構器資料。它會傳遞[GameSession](#integration-server-sdk5-csharp-dataypes-gamesession)物件、狀態更新 (updateReason) 和相符回填票證 ID。**類型：**作廢 OnUpdateGameSessionDelegate([UpdateGameSession](#integration-server-sdk5-csharp-dataypes-updategamesession))**必要**：否 | 
| 站點 | 伺服器程序接聽新玩家連線的連接埠號碼。值必須屬於為部署此遊戲伺服器組建之機群所設定的連接埠範圍。此連接埠號碼包含在遊戲工作階段和遊戲工作階段物件中，遊戲工作階段會使用該物件來連接到伺服器程序。**Type (類型)**：`Integer`**必要**：是 | 

## UpdateGameSession
<a name="integration-server-sdk5-csharp-dataypes-updategamesession"></a>

更新遊戲工作階段物件的資訊，包括遊戲工作階段更新的原因。如果更新與比對回填動作相關，則此資料類型會包含回填票證 ID。


| Properties | **Description** | 
| --- | --- | 
| GameSession | [GameSession](#integration-server-sdk5-csharp-dataypes-gamesession) 物件。GameSession 物件包含描述遊戲工作階段的屬性。**Type (類型)**：`GameSession GameSession()`**必要**：是 | 
| UpdateReason | 正在更新遊戲工作階段的原因。**Type (類型)**：`UpdateReason UpdateReason()`**必要**：是 | 
| BackfillTicketId | 嘗試更新遊戲工作階段的回填票證 ID。**Type (類型)**：`String`**必要**：是 | 

## GameSession
<a name="integration-server-sdk5-csharp-dataypes-gamesession"></a>

遊戲工作階段的詳細資訊。


| Properties | **Description** | 
| --- | --- | 
| GameSessionId |  遊戲工作階段的唯一識別符。遊戲工作階段 ARN 的格式如下：`arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token>`。 **Type (類型)**：`String` **必要**：否  | 
| 名稱 |  遊戲工作階段的描述性標籤。 **Type (類型)**：`String` **必要**：否  | 
| FleetId |  遊戲工作階段執行所在的機群的唯一識別符。 **Type (類型)**：`String` **必要**：否  | 
| MaximumPlayerSessionCount |  遊戲工作階段的玩家連線數目上限。 **Type (類型)**：`Integer` **必要**：否  | 
| 站點 |  遊戲工作階段的連接埠號碼。若要連線到Amazon GameLift Servers遊戲伺服器，應用程式需要 IP 地址和連接埠號碼。 **Type (類型)**：`Integer` **必要**：否  | 
| IpAddress |  遊戲工作階段的 IP 地址。若要連線到Amazon GameLift Servers遊戲伺服器，應用程式需要 IP 地址和連接埠號碼。 **Type (類型)**：`String` **必要**：否  | 
| GameSessionData |  一組自訂遊戲工作階段屬性，格式為單一字串值。 **Type (類型)**：`String` **必要**：否  | 
| MatchmakerData |  用於建立遊戲工作階段的配對程序資訊，以 JSON 語法格式化為字串。除了使用的配對組態之外，還包含指派給配對之所有玩家的資料，包括玩家屬性和團隊指派。 **Type (類型)**：`String` **必要**：否  | 
| GameProperties |  一組遊戲工作階段的自訂屬性，格式為 key：value 對。這些屬性會與啟動新遊戲工作階段的請求一起傳遞。 **Type (類型)**：`Dictionary<string, string>` **必要**：否  | 
| DnsName |  指派給執行遊戲工作階段之執行個體的 DNS 識別符。值的格式如下： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/gameliftservers/latest/developerguide/integration-server-sdk5-csharp-datatypes.html) 連線至在啟用 TLS 的機群上執行的遊戲工作階段時，您必須使用 DNS 名稱，而不是 IP 地址。 **Type (類型)**：`String` **必要**：否  | 

## ServerParameters
<a name="integration-server-sdk5-csharp-dataypes-serverparameters"></a>

用來維護 Amazon GameLift Servers Anywhere 伺服器與 Amazon GameLift Servers服務之間連線的資訊。使用 啟動新的伺服器程序時，會使用此資訊[InitSDK()](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-initsdk)。對於託管在Amazon GameLift Servers受管 EC2 執行個體上的伺服器，請使用空物件。


| Properties | **Description** | 
| --- | --- | 
| WebSocketUrl |  當您`RegisterCompute`做為 Amazon GameLift Servers Anywhere 的一部分時`GameLiftServerSdkEndpoint`傳回的 。 **Type (類型)**：`String` **必要**：是  | 
| ProcessId |  向託管遊戲的伺服器程序註冊的唯一識別符。 **Type (類型)**：`String` **必要**：是  | 
| HostId |  主機的唯一識別符，其中包含託管遊戲的伺服器程序。hostId 是您在註冊運算時使用的 ComputeName。如需詳細資訊，請參閱 [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html) **Type (類型)**：`String` **必要**：是  | 
| FleetId | 註冊運算之機群的機群 ID。如需詳細資訊，請參閱 [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)。**Type (類型)**：`String`**必要**：是 | 
| AuthToken | 產生的身分驗證字符Amazon GameLift Servers，用於向 驗證您的伺服器Amazon GameLift Servers。如需詳細資訊，請參閱 [GetComputeAuthToken](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GetComputeAuthToken.html)。**Type (類型)**：`String`**必要**：是 | 

## StartMatchBackfillRequest
<a name="integration-server-sdk5-csharp-dataypes-startmatchbackfillrequest"></a>

用來建立配對回填請求的資訊。遊戲伺服器會在[StartMatchBackfill()](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-startmatchbackfill)通話Amazon GameLift Servers中將此資訊傳達給 。


| Properties | **Description** | 
| --- | --- | 
| GameSessionArn |  唯一的遊戲工作階段識別符。API 操作會以 ARN 格式`[GetGameSessionId](https://docs.aws.amazon.com/gameliftservers/latest/developerguide/integration-server-sdk5-csharp-actions.html#integration-server-sdk5-csharp-getgamesessionid)`傳回識別符。 **Type (類型)**：`String` **必要**：是  | 
| MatchmakingConfigurationArn |  配對建構器用於此請求的唯一識別符，格式為 ARN。原始遊戲工作階段的配對建構器 ARN 位於配對建構器資料屬性中的遊戲工作階段物件中。進一步了解使用配對建構器資料中的[配對建構器資料](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-server.html#match-server-data.html)。 **Type (類型)**：`String` **必要**：是  | 
| Players |  一組資料，代表目前在遊戲工作階段中的所有玩家。配對建構器使用此項資訊搜尋適合配對現有玩家的新玩家。 **Type (類型)**：`List<Player>` **必要**：是  | 
| TicketId |  配對或配對回填請求票證的唯一識別符。如果您不提供值， Amazon GameLift Servers會產生值。您可使用此識別項依據需求追蹤配對回填票證狀態或取消要求。 **Type (類型)**：`String` **必要**：否  | 

## Player
<a name="integration-server-sdk5-csharp-dataypes-player"></a>

代表配對中的玩家。當配對請求開始時，玩家會有玩家 ID、屬性和可能的延遲資料。 會在配對完成後Amazon GameLift Servers新增隊伍資訊。


| Properties | **Description** | 
| --- | --- | 
| LatencyInMS |  一組以毫秒為單位的值，表示玩家連線到某個位置時所經歷的延遲量。 如果使用此屬性，則玩家只會符合列出的位置。若配對構建器有評估玩家延遲的規則，玩家則必須回報延遲度，方可配對。 **Type (類型)**：`Dictionary<string, int>` **必要**：否  | 
| PlayerAttributes |  包含玩家資訊的金鑰：值對集合，可用於配對。玩家屬性金鑰必須符合配對規則集中使用的 PlayerAttributes。 如需玩家屬性的詳細資訊，請參閱 [AttributeValue](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_AttributeValue.html)。 **Type (類型)**：`Dictionary<string, AttributeValue` **必要**：否  | 
| PlayerId |  玩家的唯一識別符。 **Type (類型)**：`String` **必要**：否  | 
| 團隊 |  玩家在配對中獲指派的隊伍名稱。您可以在配對規則集中定義團隊名稱。 **Type (類型)**：`String` **必要**：否  | 

## DescribePlayerSessionsRequest
<a name="integration-server-sdk5-csharp-dataypes-playersessions"></a>

此資料類型用於指定要擷取的玩家工作階段，可透過多種方式使用：(1) 提供 PlayerSessionId 要求特定玩家工作階段；(2) 提供 GameSessionId 要求指定遊戲工作階段之中的所有玩家工作階段；或 (3) 提供 PlayerId 要求指定玩家的所有玩家工作階段。對於大量的玩家工作階段，可使用分頁參數擷取結果做為循序頁面。


| Properties | **Description** | 
| --- | --- | 
| GameSessionId |  唯一的遊戲工作階段識別符。請使用此參數要求特定遊戲工作階段的所有玩家工作階段。遊戲工作階段 ID 格式如下：`arn:aws:gamelift:<region>::gamesession/fleet-<fleet ID>/<ID string>`。<ID string> 的值可能是自訂 ID 字串 (若在建立遊戲工作階段時有指定 ID)，或是產生的字串。 **Type (類型)**：`String` **必要**：否  | 
| PlayerSessionId |  玩家工作階段的唯一識別符。 **Type (類型)**：`String` **必要**：否  | 
| PlayerId |  玩家的唯一識別符。請參閱 [產生玩家 IDs](player-sessions-player-identifiers.md)。 **Type (類型)**：`String` **必要**：否  | 
| PlayerSessionStatusFilter |  要篩選結果的玩家工作階段狀態。可能的玩家工作階段狀態包括下列項目： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/gameliftservers/latest/developerguide/integration-server-sdk5-csharp-datatypes.html) **Type (類型)**：`String` **必要**：否  | 
| NextToken |  表示結果下一頁開始的字符。若要指定結果集的開頭，請不要提供值。如果您提供玩家工作階段 ID，則會忽略此參數。 **Type (類型)**：`String` **必要**：否  | 
| 限制 |  回傳結果的數量上限。如果您提供玩家工作階段 ID，則會忽略此參數。 **Type (類型)**：`int` **必要**：否  | 

## StopMatchBackfillRequest
<a name="integration-server-sdk5-csharp-dataypes-stopmatchbackfillrequest"></a>

用來取消配對回填請求的資訊。遊戲伺服器會將此資訊傳達給[StopMatchBackfill()](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-stopmatchbackfill)通話中的 Amazon GameLift Servers 服務。


| Properties | **Description** | 
| --- | --- | 
| GameSessionArn |  取消請求的唯一遊戲工作階段識別符。 **Type (類型)**：`string` **必要**：是  | 
| MatchmakingConfigurationArn |  傳送此請求之配對建構器的唯一識別符。 **Type (類型)**：`string` **必要**：是  | 
| TicketId |  要取消之回填請求票證的唯一識別符。 **Type (類型)**：`string` **必要**：是  | 

## GetFleetRoleCredentialsRequest
<a name="integration-server-sdk5-csharp-dataypes-getfleetrolecredentialsrequest"></a>

此資料類型可讓遊戲伺服器有限地存取您的其他 AWS 資源。如需詳細資訊，請參閱 [設定 的 IAM 服務角色 Amazon GameLift Servers](setting-up-role.md)。


| Properties | **Description** | 
| --- | --- | 
| RoleArn | 服務角色的 Amazon Resource Name (ARN)，可延伸 AWS 資源的有限存取權。**Type (類型)**：`string` **必要**：是  | 
| RoleSessionName | 描述使用角色登入資料的工作階段名稱。**Type (類型)**：`string` **必要**：否  | 

## AttributeValue
<a name="integration-server-sdk5-csharp-datatypes-attributevalue"></a>

在[Player](#integration-server-sdk5-csharp-dataypes-player)屬性鍵/值對中使用這些值。此物件可讓您使用任何有效的資料類型來指定屬性值：字串、數字、字串陣列或資料映射。每個`AttributeValue`物件只能使用其中一個可用的屬性。


| Properties | Description | 
| --- | --- | 
| attrType |  指定屬性值的類型。 **類型：**`AttrType`[列舉](#integration-server-sdk5-csharp-datatypes-enums)值。 **必要**：否  | 
| S |  代表字串屬性值。 **Type (類型)**：`string` **必要**：是  | 
| N |  代表數值屬性值。 **Type (類型)**：`double` **必要**：是  | 
| SL |  代表字串屬性值的陣列。 **Type (類型)**：`string[]` **必要**：是  | 
| SDM |  代表字串索引鍵和雙值的字典。 **Type (類型)**：`Dictionary<string, double>` **必要**：是  | 

## AwsStringOutcome
<a name="integration-server-sdk5-csharp-datatypes-awsstringoutcome"></a>

此資料類型來自 動作，並產生具有下列屬性的物件：


| Properties | Description | 
| --- | --- | 
| 結果 |  動作的結果。 **Type (類型)**：`string` **必要**：否  | 
| 成功 |  動作是否成功。 **Type (類型)**：`bool` **必要**：是  | 
| 錯誤 |  動作失敗時發生的錯誤。 **Type (類型)**：[GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **必要**：否  | 

## GenericOutcome
<a name="integration-server-sdk5-csharp-datatypes-genericoutcome"></a>

此資料類型來自 動作，並產生具有下列屬性的物件：


| Properties | Description | 
| --- | --- | 
| 成功 |  動作是否成功。 **Type (類型)**：`bool` **必要**：是  | 
| 錯誤 |  動作失敗時發生的錯誤。 **Type (類型)**：[GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **必要**：否  | 

## MetricsManagerOutcome
<a name="integration-server-sdk5-csharp-datatypes-metricsmanageroutcome"></a>

代表 [InitMetrics()](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-initmetrics) 呼叫的結果。在成功時包含 MetricsManager 執行個體，或在失敗時包含錯誤資訊。


|  |  | 
| --- |--- |
| 結果 |  用於收集和報告指標的 MetricsManager 執行個體。 **Type (類型)**：`MetricsManager` **必要**：否  | 
| 成功 |  動作是否成功。 **Type (類型)**：`bool` **必要**：是  | 
| 錯誤 |  動作失敗時發生的錯誤。 **Type (類型)**：[GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **必要**：否  | 

## DescribePlayerSessionsOutcome
<a name="integration-server-sdk5-csharp-datatypes-describeplayersessionsoutcome"></a>

此資料類型來自 動作，並產生具有下列屬性的物件：


| Properties | Description | 
| --- | --- | 
| 結果 |  動作的結果。 **Type (類型)**：[DescribePlayerSessionsResult](#integration-server-sdk5-csharp-datatypes-describeplayersessionsresult) **必要**：否   | 
| 成功 |  動作是否成功。 **Type (類型)**：`bool` **必要**：是  | 
| 錯誤 |  動作失敗時發生的錯誤。 **Type (類型)**：[GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **必要**：否  | 

## DescribePlayerSessionsResult
<a name="integration-server-sdk5-csharp-datatypes-describeplayersessionsresult"></a>


| Properties | Description | 
| --- | --- | 
| NextToken |  表示結果下一頁開始的字符。若要指定結果集的開頭，請不要提供值。如果您提供玩家工作階段 ID，則會忽略此參數。 **Type (類型)**：`string` **必要**：是  | 
| PlayerSessions |  包含符合請求之每個玩家工作階段屬性的物件集合。 **Type (類型)**：`IList<PlayerSession>` **必要**：  | 
| 成功 |  動作是否成功。 **Type (類型)**：`bool` **必要**：是  | 
| 錯誤 |  動作失敗時發生的錯誤。 **Type (類型)**：[GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **必要**：否  | 

## PlayerSession
<a name="integration-server-sdk5-csharp-datatypes-playersession"></a>


| Properties | Description | 
| --- | --- | 
| CreationTime |  **Type (類型)**：`long` **必要**：是  | 
| FleetId |  **Type (類型)**：`string` **必要**：是  | 
| GameSessionId |  **Type (類型)**：`string` **必要**：是  | 
| IpAddress |  **Type (類型)**：`string` **必要**：是  | 
| PlayerData |  **Type (類型)**：`string` **必要**：是  | 
| PlayerId |  **Type (類型)**：`string` **必要**：是  | 
| PlayerSessionId |  **Type (類型)**：`string` **必要**：是  | 
| 站點 |  **Type (類型)**：`int` **必要**：是  | 
| 狀態 |  **類型：**`PlayerSessionStatus`[列舉](#integration-server-sdk5-csharp-datatypes-enums)。 **必要**：是  | 
| TerminationTime |  **Type (類型)**：`long` **必要**：是  | 
| DnsName |  **Type (類型)**：`string` **必要**：是  | 

## StartMatchBackfillOutcome
<a name="integration-server-sdk5-csharp-datatypes-startmatchbackfilloutcome"></a>

此資料類型來自 動作，並產生具有下列屬性的物件：


| Properties | Description | 
| --- | --- | 
| 結果 |  動作的結果。 **Type (類型)**：[StartMatchBackfillResult](#integration-server-sdk5-csharp-datatypes-startmatchbackfillresult) **必要**：否  | 
| 成功 |  動作是否成功。 **Type (類型)**：`bool` **必要**：是  | 
| 錯誤 |  動作失敗時發生的錯誤。 **Type (類型)**：[GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **必要**：否  | 

## StartMatchBackfillResult
<a name="integration-server-sdk5-csharp-datatypes-startmatchbackfillresult"></a>


| Properties | Description | 
| --- | --- | 
| TicketId |  **Type (類型)**：`string` **必要**：是  | 

## GetComputeCertificateOutcome
<a name="integration-server-sdk5-csharp-datatypes-getcomputecertificateoutcome"></a>

此資料類型來自 動作，並產生具有下列屬性的物件：


| Properties | Description | 
| --- | --- | 
| 結果 |  動作的結果。 **Type (類型)**：[GetComputeCertificateResult](#integration-server-sdk5-csharp-datatypes-getcomputecertificateresult) **必要**：否   | 
| 成功 |  動作是否成功。 **Type (類型)**：`bool` **必要**：是  | 
| 錯誤 |  動作失敗時發生的錯誤。 **Type (類型)**：[GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **必要**：否  | 

## GetComputeCertificateResult
<a name="integration-server-sdk5-csharp-datatypes-getcomputecertificateresult"></a>

運算上 TLS 憑證的路徑和運算的主機名稱。


| Properties | Description | 
| --- | --- | 
| CertificatePath |  **Type (類型)**：`string` **必要**：是  | 
| ComputeName |  **Type (類型)**：`string` **必要**：是  | 

## GetFleetRoleCredentialsOutcome
<a name="integration-server-sdk5-csharp-datatypes-getfleetrolecredentialsoutcome"></a>

此資料類型來自 動作，並產生具有下列屬性的物件：


| Properties | Description | 
| --- | --- | 
| 結果 |  動作的結果。 **Type (類型)**：[GetFleetRoleCredentialsResult](#integration-server-sdk5-csharp-datatypes-getfleetrolecredentialsresult) **必要**：否  | 
| 成功 |  動作是否成功。 **Type (類型)**：`bool` **必要**：是  | 
| 錯誤 |  動作失敗時發生的錯誤。 **Type (類型)**：[GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **必要**：否  | 

## GetFleetRoleCredentialsResult
<a name="integration-server-sdk5-csharp-datatypes-getfleetrolecredentialsresult"></a>


| Properties | Description | 
| --- | --- | 
| AccessKeyId |  要驗證並提供 AWS 資源存取權的存取金鑰 ID。 **Type (類型)**：`string` **必要**：否  | 
| AssumedRoleId |  服務角色所屬的使用者 ID。 **Type (類型)**：`string` **必要**：否  | 
| AssumedRoleUserArn |  服務角色所屬使用者的 Amazon Resource Name (ARN)。 **Type (類型)**：`string` **必要**：否  | 
| Expiration |  工作階段登入資料過期前的時間長度。 **Type (類型)**：`DateTime` **必要**：否  | 
| SecretAccessKey |  用於身分驗證的私密存取金鑰 ID。 **Type (類型)**：`string` **必要**：否  | 
| SessionToken |  識別目前作用中工作階段與 AWS 資源互動的字符。 **Type (類型)**：`string` **必要**：否  | 
| 成功 |  動作是否成功。 **Type (類型)**：`bool` **必要**：是  | 
| 錯誤 |  動作失敗時發生的錯誤。 **Type (類型)**：[GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **必要**：否  | 

## AwsDateTimeOutcome
<a name="integration-server-sdk5-csharp-datatypes-awsdatetimeoutcome"></a>

此資料類型來自 動作，並產生具有下列屬性的物件：


| Properties | Description | 
| --- | --- | 
| 結果 |  動作的結果。 **Type (類型)**：`DateTime` **必要**：否   | 
| 成功 |  動作是否成功。 **Type (類型)**：`bool` **必要**：是  | 
| 錯誤 |  動作失敗時發生的錯誤。 **Type (類型)**：[GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **必要**：否  | 

## GameLiftError
<a name="integration-server-sdk5-csharp-datatypes-gamelifterror"></a>


| Properties | Description | 
| --- | --- | 
| ErrorType |  錯誤類型。 **類型：**`GameLiftErrorType`[列舉](#integration-server-sdk5-csharp-datatypes-enums)。 **必要**：否   | 
| ErrorName |  錯誤的名稱。  **Type (類型)**：`string` **必要**：否   | 
| ErrorMessage |  錯誤訊息。  **Type (類型)**：`string` **必要**：否   | 

## 列舉
<a name="integration-server-sdk5-csharp-datatypes-enums"></a>

為適用於 Amazon GameLift Servers(C\$1) 的伺服器 SDK 定義的列舉定義如下：

**AttrType**  
+ **NONE**
+ **STRING**
+ **DOUBLE**
+ **STRING\$1LIST**
+ **STRING\$1DOUBLE\$1MAP**

**GameLiftErrorType**  
指出錯誤類型的字串值。有效值包含：  
+ **SERVICE\$1CALL\$1FAILED** – 呼叫 AWS 服務失敗。
+ **LOCAL\$1CONNECTION\$1FAILED** – 與 的本機連線Amazon GameLift Servers失敗。
+ **NETWORK\$1NOT\$1INITIALIZED** – 網路尚未初始化。
+ **GAMESESSION\$1ID\$1NOT\$1SET** – 尚未設定遊戲工作階段 ID。
+ **BAD\$1REQUEST\$1EXCEPTION** 
+ **INTERNAL\$1SERVICE\$1EXCEPTION** 
+ **ALREADY\$1INITIALIZED** – Amazon GameLift Servers 伺服器或用戶端已使用 Initialize() 初始化。
+ **FLEET\$1MISMATCH** – 目標機群與 gameSession 或 playerSession 的機群不相符。
+ **GAMELIFT\$1CLIENT\$1NOT\$1INITIALIZED** – Amazon GameLift Servers用戶端尚未初始化。
+ **GAMELIFT\$1SERVER\$1NOT\$1INITIALIZED** – Amazon GameLift Servers 伺服器尚未初始化。
+ **GAME\$1SESSION\$1ENDED\$1FAILED** – 的 伺服器開發套件Amazon GameLift Servers無法聯絡 服務來報告遊戲工作階段已結束。
+ **GAME\$1SESSION\$1NOT\$1READY** – Amazon GameLift Servers 伺服器遊戲工作階段未啟用。
+ **GAME\$1SESSION\$1READY\$1FAILED** – 的伺服器 SDK Amazon GameLift Servers 無法聯絡 服務來報告遊戲工作階段已就緒。
+ **INITIALIZATION\$1MISMATCH** – 在 Server：：Initialize() 之後呼叫用戶端方法，反之亦然。
+ **NOT\$1INITIALIZED** – Amazon GameLift Servers 伺服器或用戶端尚未使用 Initialize() 初始化。
+ **NO\$1TARGET\$1ALIASID\$1SET** – 尚未設定目標aliasId。
+ **NO\$1TARGET\$1FLEET\$1SET** – 尚未設定目標機群。
+ **PROCESS\$1ENDING\$1FAILED** – 的伺服器 SDK Amazon GameLift Servers 無法聯絡 服務來報告程序即將結束。
+ **PROCESS\$1NOT\$1ACTIVE** – 伺服器程序尚未啟動、未繫結至 GameSession，且無法接受或處理 PlayerSessions。
+ **PROCESS\$1NOT\$1READY** – 伺服器程序尚未準備好啟用。
+ **PROCESS\$1READY\$1FAILED** – 的伺服器 SDK Amazon GameLift Servers 無法聯絡 服務來報告程序已就緒。
+ **SDK\$1VERSION\$1DETECTION\$1FAILED** – SDK 版本偵測失敗。
+ **STX\$1CALL\$1FAILED** – 呼叫 XStx 伺服器後端元件失敗。
+ **STX\$1INITIALIZATION\$1FAILED** – XStx 伺服器後端元件無法初始化。
+ **UNEXPECTED\$1PLAYER\$1SESSION** – 伺服器遇到未註冊的玩家工作階段。
+ **WEBSOCKET\$1CONNECT\$1FAILURE** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1FORBIDDEN** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1INVALID\$1URL** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1TIMEOUT** 
+ **WEBSOCKET\$1RETRIABLE\$1SEND\$1MESSAGE\$1FAILURE** – 將訊息傳送至 GameLift Service WebSocket 的可重試失敗。
+ **WEBSOCKET\$1SEND\$1MESSAGE\$1FAILURE** – 無法傳送訊息至 GameLift Service WebSocket。
+ **MATCH\$1BACKFILL\$1REQUEST\$1VALIDATION** – 驗證請求失敗。
+ **PLAYER\$1SESSION\$1REQUEST\$1VALIDATION** – 驗證請求失敗。

**PlayerSessionCreationPolicy**  
字串值代表遊戲工作階段是否可接受新玩家。有效值包含：  
+ **ACCEPT\$1ALL** – 接受所有新玩家工作階段。
+ **DENY\$1ALL** – 拒絕所有新玩家工作階段。
+ **NOT\$1SET** – 遊戲工作階段未設定為接受或拒絕新的玩家工作階段。

**PlayerSessionStatus**  
+ **ACTIVE**
+ **COMPLETED (已完成)**
+ **NOT\$1SET**
+ **RESERVED**
+ **逾時**

[適用於 -- 資料類型的 C\$1 伺服器 SDK Amazon GameLift Servers 5.x](integration-server-sdk5-csharp-datatypes.md)

**Topics**
+ [適用於 -- 資料類型的 C\$1 伺服器 SDK Amazon GameLift Servers 5.x](integration-server-sdk5-csharp-datatypes.md)
+ [GetSdkVersion()](#integration-server-sdk5-csharp-getsdkversion)
+ [InitMetrics()](#integration-server-sdk5-csharp-initmetrics)
+ [InitSDK()](#integration-server-sdk5-csharp-initsdk)
+ [InitSDK()](#integration-server-sdk5-csharp-initsdk-anywhere)
+ [ProcessReady()](#integration-server-sdk5-csharp-processready)
+ [ProcessEnding()](#integration-server-sdk5-csharp-processending)
+ [ActivateGameSession()](#integration-server-sdk5-csharp-activategamesession)
+ [UpdatePlayerSessionCreationPolicy()](#integration-server-sdk5-csharp-updateplayersessioncreationpolicy)
+ [GetGameSessionId()](#integration-server-sdk5-csharp-getgamesessionid)
+ [GetTerminationTime()](#integration-server-sdk5-csharp-getterm)
+ [AcceptPlayerSession()](#integration-server-sdk5-csharp-acceptplayersession)
+ [RemovePlayerSession()](#integration-server-sdk5-csharp-removeplayersession)
+ [DescribePlayerSessions()](#integration-server-sdk5-csharp-describeplayersessions)
+ [StartMatchBackfill()](#integration-server-sdk5-csharp-startmatchbackfill)
+ [StopMatchBackfill()](#integration-server-sdk5-csharp-stopmatchbackfill)
+ [GetComputeCertificate()](#integration-server-sdk5-csharp-getcomputecertificate)
+ [GetFleetRoleCredentials()](#integration-server-sdk5-csharp-getfleetrolecredentials)
+ [Destroy()](#integration-server-sdk5-csharp-destroy)

## GetSdkVersion()
<a name="integration-server-sdk5-csharp-getsdkversion"></a>

傳回內建至伺服器程序的目前開發套件版本編號。

### 語法
<a name="integration-server-sdk5-csharp-getsdkversion-syntax"></a>

```
AwsStringOutcome GetSdkVersion();
```

### 傳回值
<a name="integration-server-sdk5-csharp-getsdkversion-return"></a>

如果成功，將目前開發套件版本以 [AwsStringOutcome](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-awsstringoutcome) 物件傳回。傳回的字串包含版本號碼 （範例 `5.0.0`)。如果不成功，則會傳回錯誤訊息。

### 範例
<a name="integration-server-sdk5-csharp-getsdkversion-example"></a>

```
var getSdkVersionOutcome = GameLiftServerAPI.GetSdkVersion();
```

## InitMetrics()
<a name="integration-server-sdk5-csharp-initmetrics"></a>

初始化指標系統，以收集和報告伺服器效能資料。為了獲得最佳結果，請在 之前呼叫此方法[InitSDK()](#integration-server-sdk5-csharp-initsdk)，以在 SDK 初始化期間啟用指標收集。

### 語法
<a name="integration-server-sdk5-csharp-initmetrics-syntax"></a>

```
MetricsManagerOutcome InitMetrics();
MetricsManagerOutcome InitMetrics(MetricsParameters metricsParameters);
```

### Parameters
<a name="integration-server-sdk5-csharp-initmetrics-parameter"></a>

[MetricsParameters](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-metricsparameters) (選用)  
指標集合的組態參數。如果未提供， 會使用可由環境變數覆寫的預設值。

### 傳回值
<a name="integration-server-sdk5-csharp-initmetrics-return"></a>

如果成功， 會傳回包含 MetricsManager 執行個體的[MetricsManagerOutcome](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-metricsmanageroutcome)物件。如果不成功，則會傳回錯誤訊息。

### 範例
<a name="integration-server-sdk5-csharp-initmetrics-example"></a>

```
// Initialize with default parameters (uses environment variables if available)
var outcome = GameLiftServerAPI.InitMetrics();
if (outcome.Success) {
    var metricsManager = outcome.Result;
} else {
    Console.WriteLine("Failed to initialize metrics: " + outcome.Error.ErrorMessage);
}

// Initialize with custom parameters
var metricsParams = new MetricsParameters("localhost", 8125, "crash-host", 9999, 1000, 1024);
var customOutcome = GameLiftServerAPI.InitMetrics(metricsParams);
if (customOutcome.Success) {
    var metricsManager = customOutcome.Result;
}
```

## InitSDK()
<a name="integration-server-sdk5-csharp-initsdk"></a>

初始化受管 EC2 機群的 Amazon GameLift Servers SDK。在與 相關的任何其他初始化Amazon GameLift Servers發生之前，請在啟動時呼叫此方法。此方法會從主機環境讀取伺服器參數，以設定伺服器與服務之間的通訊Amazon GameLift Servers。它使用等冪符記，因此您可以在失敗時安全地重試此呼叫。

### 語法
<a name="integration-server-sdk5-csharp-initsdk-syntax"></a>

```
GenericOutcome InitSDK();
```

### 傳回值
<a name="integration-server-sdk5-csharp-initsdk-return"></a>

如果成功， 會傳回 InitSdkOutcome 物件，表示伺服器程序已準備好呼叫 [ProcessReady()](#integration-server-sdk5-csharp-processready)。

### 範例
<a name="integration-server-sdk5-csharp-initsdk-example"></a>

```
//Call InitSDK to establish a local connection with the GameLift agent to enable further communication.
GenericOutcome initSDKOutcome = GameLiftServerAPI.InitSDK();
```

## InitSDK()
<a name="integration-server-sdk5-csharp-initsdk-anywhere"></a>

初始化 Anywhere 機群的 Amazon GameLift Servers SDK。在與 相關的任何其他初始化Amazon GameLift Servers發生之前，請在啟動時呼叫此方法。此方法需要明確的伺服器參數，才能設定伺服器和服務之間的通訊Amazon GameLift Servers。它使用等冪符記，因此您可以在失敗時安全地重試此呼叫。

### 語法
<a name="integration-server-sdk5-csharp-initsdk-anywhere-syntax"></a>

```
GenericOutcome InitSDK(ServerParameters serverParameters);
```

### Parameters
<a name="integration-server-sdk5-csharp-initsdk-anywhere-parameter"></a>

[ServerParameters](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-dataypes-serverparameters)  
若要在 Amazon GameLift Servers Anywhere 機群上初始化遊戲伺服器，請使用下列資訊建構`ServerParameters`物件：  
+ 用來連線至遊戲伺服器的 WebSocket URL。
+ 用於託管遊戲伺服器的程序 ID。
+ 託管遊戲伺服器程序的運算 ID。
+ 包含 Amazon GameLift Servers Anywhere 運算的Amazon GameLift Servers機群 ID。
+ Amazon GameLift Servers 操作產生的授權字符。

### 傳回值
<a name="integration-server-sdk5-csharp-initsdk-anywhere-return"></a>

如果成功， 會傳回 InitSdkOutcome 物件，表示伺服器程序已準備好呼叫 [ProcessReady()](#integration-server-sdk5-csharp-processready)。

**注意**  
如果針對部署到 Anywhere 機群的遊戲組建呼叫`InitSDK()`失敗，請檢查建立組建資源時使用的`ServerSdkVersion`參數。您必須將此值明確設定為正在使用的伺服器 SDK 版本。此參數的預設值為 4.x，不相容。若要解決此問題，請建立新的組建，並將其部署到新的機群。

### 範例
<a name="integration-server-sdk5-csharp-initsdk-anywhere-example"></a>

```
//Define the server parameters
string websocketUrl = "wss://us-west-1.api.amazongamelift.com";
string processId = "PID1234";
string fleetId = "aarn:aws:gamelift:us-west-1:111122223333:fleet/fleet-9999ffff-88ee-77dd-66cc-5555bbbb44aa";
string hostId = "HardwareAnywhere";
string authToken = "1111aaaa-22bb-33cc-44dd-5555eeee66ff";
ServerParameters serverParameters = 
  new ServerParameters(webSocketUrl, processId, hostId, fleetId, authToken);

//Call InitSDK to establish a local connection with the GameLift agent to enable further communication.
GenericOutcome initSDKOutcome = GameLiftServerAPI.InitSDK(serverParameters);
```

## ProcessReady()
<a name="integration-server-sdk5-csharp-processready"></a>

Amazon GameLift Servers 通知伺服器程序已準備好託管遊戲工作階段。叫用 後呼叫此方法[InitSDK()](#integration-server-sdk5-csharp-initsdk)。每個程序只能呼叫此方法一次。

### 語法
<a name="integration-server-sdk5-csharp-processready-syntax"></a>

```
GenericOutcome ProcessReady(ProcessParameters processParameters)
```

### Parameters
<a name="integration-server-sdk5-csharp-processready-parameter"></a>

**[ProcessParameters](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-dataypes-process)**  
`ProcessParameters` 物件會保留伺服器程序的相關資訊。

### 傳回值
<a name="integration-server-sdk5-csharp-processready-return"></a>

傳回一般結果，其中包含成功或失敗以及錯誤訊息。

### 範例
<a name="integration-server-sdk5-csharp-processready-example"></a>

此範例說明 方法和委派函數實作。

```
// Set parameters and call ProcessReady
ProcessParameters processParams = new ProcessParameters(
  this.OnStartGameSession,
  this.OnProcessTerminate,
  this.OnHealthCheck,
  this.OnUpdateGameSession,
  port,
  new LogParameters(new List<string>()  
  // Examples of log and error files written by the game server
  {
    "C:\\game\\logs",
    "C:\\game\\error"
  })
);
GenericOutcome processReadyOutcome = GameLiftServerAPI.ProcessReady(processParams);
```

## ProcessEnding()
<a name="integration-server-sdk5-csharp-processending"></a>

Amazon GameLift Servers 通知伺服器程序正在終止。在所有其他清除任務 （包括關閉作用中的遊戲工作階段） 之後，以及在終止程序之前，呼叫此方法。根據 的結果`ProcessEnding()`，程序會以成功 (0) 或錯誤 (-1) 結束並產生機群事件。如果程序因錯誤而終止，產生的機群事件為 `SERVER_PROCESS_TERMINATED_UNHEALTHY`。

### 語法
<a name="integration-server-sdk5-csharp-processending-syntax"></a>

```
GenericOutcome ProcessEnding()
```

### 傳回值
<a name="integration-server-sdk5-csharp-processending-return"></a>

傳回一般結果，其中包含成功或失敗以及錯誤訊息。

### 範例
<a name="integration-server-sdk5-csharp-processending-example"></a>

此範例會先呼叫 `ProcessEnding()`和 ，`Destroy()`再以成功或錯誤結束程式碼終止伺服器程序。

```
GenericOutcome processEndingOutcome = GameLiftServerAPI.ProcessEnding();
GameLiftServerAPI.Destroy();

if (processEndingOutcome.Success)
  {
    Environment.Exit(0);
  }
else
  {
    Console.WriteLine("ProcessEnding() failed. Error: " + processEndingOutcome.Error.ToString());
    Environment.Exit(-1);  
  }
```

## ActivateGameSession()
<a name="integration-server-sdk5-csharp-activategamesession"></a>

Amazon GameLift Servers 通知伺服器程序已啟用遊戲工作階段，現在已準備好接收玩家連線。在所有遊戲工作階段初始化之後，應該呼叫此動作做為回`onStartGameSession()`呼函數的一部分。

### 語法
<a name="integration-server-sdk5-csharp-activategamesession-syntax"></a>

```
GenericOutcome ActivateGameSession()
```

### 傳回值
<a name="integration-server-sdk5-csharp-activategamesession-return"></a>

傳回一般結果，其中包含成功或失敗以及錯誤訊息。

### 範例
<a name="integration-server-sdk5-csharp-activategamesession-example"></a>

此範例顯示的是做為 `onStartGameSession()` 委派函式一部分的 `ActivateGameSession()` 受到呼叫。

```
void OnStartGameSession(GameSession gameSession)
{
  // game-specific tasks when starting a new game session, such as loading map   
  // When ready to receive players   
  GenericOutcome activateGameSessionOutcome = GameLiftServerAPI.ActivateGameSession();
}
```

## UpdatePlayerSessionCreationPolicy()
<a name="integration-server-sdk5-csharp-updateplayersessioncreationpolicy"></a>

更新目前遊戲工作階段的能力，以接受新的玩家工作階段。遊戲工作階段可設定為接受或拒絕所有新的玩家工作階段。

### 語法
<a name="integration-server-sdk5-csharp-updateplayersessioncreationpolicy-syntax"></a>

```
GenericOutcome UpdatePlayerSessionCreationPolicy(PlayerSessionCreationPolicy playerSessionPolicy)
```

### Parameters
<a name="integration-server-sdk5-csharp-updateplayersessioncreationpolicy-parameter"></a>

**playerSessionPolicy**  
指出遊戲工作階段是否接受新玩家的字串值。  
有效值包含：  
+ **ACCEPT\$1ALL** – 接受所有新玩家工作階段。
+ **DENY\$1ALL** – 拒絕所有新玩家工作階段。

### 傳回值
<a name="integration-server-sdk5-csharp-updateplayersessioncreationpolicy-return"></a>

傳回一般結果，其中包含成功或失敗以及錯誤訊息。

### 範例
<a name="integration-server-sdk5-csharp-updateplayersessioncreationpolicy-example"></a>

此範例設定目前遊戲工作階段的加入政策為可接受所有玩家。

```
GenericOutcome updatePlayerSessionPolicyOutcome = 
  GameLiftServerAPI.UpdatePlayerSessionCreationPolicy(PlayerSessionCreationPolicy.ACCEPT_ALL);
```

## GetGameSessionId()
<a name="integration-server-sdk5-csharp-getgamesessionid"></a>

擷取作用中伺服器程序託管的遊戲工作階段 ID。

對於未使用遊戲工作階段啟用的閒置程序，呼叫會傳回 [GameLiftError](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-gamelifterror)。

### 語法
<a name="integration-server-sdk5-csharp-getgamesessionid-syntax"></a>

```
AwsStringOutcome GetGameSessionId()
```

### 傳回值
<a name="integration-server-sdk5-csharp-getgamesessionid-return"></a>

如果成功，則會把遊戲工作階段 ID 當成 [AwsStringOutcome](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-awsstringoutcome) 物件傳回。如果不成功， 會傳回錯誤訊息。」

### 範例
<a name="integration-server-sdk5-csharp-getgamesessionid-example"></a>

```
AwsStringOutcome getGameSessionIdOutcome = GameLiftServerAPI.GetGameSessionId();
```

## GetTerminationTime()
<a name="integration-server-sdk5-csharp-getterm"></a>

若設有終止時間，即傳回伺服器程序排定關閉的時間。伺服器程序在收到來自 的回`onProcessTerminate()`呼後會採取此動作Amazon GameLift Servers。 Amazon GameLift Servers`onProcessTerminate()`會呼叫 ，原因如下：
+ 當伺服器程序回報運作狀態不佳或未回應 時Amazon GameLift Servers。
+ 在縮減規模事件期間終止執行個體時。
+ 當執行個體因 [spot-instance 中斷](spot-tasks.md)而終止時。

### 語法
<a name="integration-server-sdk5-csharp-getterm-syntax"></a>

```
AwsDateTimeOutcome GetTerminationTime()
```

### 傳回值
<a name="integration-server-sdk5-csharp-getterm-return"></a>

如果成功， 會將終止時間傳回為 [AwsDateTimeOutcome](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-awsdatetimeoutcome) 物件。值是終止時間，以自 以來經過的刻度表示`0001 00:00:00`。例如，日期時間值`2020-09-13 12:26:40 -000Z`等於`637355968000000000`刻度。如果沒有可用的終止時間， 會傳回錯誤訊息。

### 範例
<a name="integration-server-sdk5-csharp-getterm-example"></a>

```
AwsDateTimeOutcome getTerminationTimeOutcome = GameLiftServerAPI.GetTerminationTime(); 
```

## AcceptPlayerSession()
<a name="integration-server-sdk5-csharp-acceptplayersession"></a>

Amazon GameLift Servers 通知具有指定玩家工作階段 ID 的玩家已連線至伺服器程序，且需要驗證。 Amazon GameLift Servers 會驗證玩家工作階段 ID 是否有效。驗證玩家工作階段後， 會將玩家位置Amazon GameLift Servers的狀態從 RESERVED 變更為 ACTIVE。

### 語法
<a name="integration-server-sdk5-csharp-acceptplayersession-syntax"></a>

```
GenericOutcome AcceptPlayerSession(String playerSessionId)
```

### Parameters
<a name="integration-server-sdk5-csharp-acceptplayersession-parameter"></a>

playerSessionId  
建立新的玩家工作階段時，GameLift 發行的唯一 ID。

### 傳回值
<a name="integration-server-sdk5-csharp-acceptplayersession-return"></a>

傳回一般結果，其中包含成功或失敗以及錯誤訊息。

### 範例
<a name="integration-server-sdk5-csharp-acceptplayersession-example"></a>

此範例展示了用來處理連線請求的函數，其處理過程包括驗證和拒絕無效的玩家工作階段 ID。

```
void ReceiveConnectingPlayerSessionID (Connection connection, String playerSessionId)
{
  GenericOutcome acceptPlayerSessionOutcome = GameLiftServerAPI.AcceptPlayerSession(playerSessionId);
  if(acceptPlayerSessionOutcome.Success)
  {
    connectionToSessionMap.emplace(connection, playerSessionId);
    connection.Accept();
  }
  else 
  {
    connection.Reject(acceptPlayerSessionOutcome.Error.ErrorMessage);
  }       
}
```

## RemovePlayerSession()
<a name="integration-server-sdk5-csharp-removeplayersession"></a>

Amazon GameLift Servers 通知玩家已中斷與伺服器程序的連線。作為回應， Amazon GameLift Servers 會將玩家位置變更為可用。

### 語法
<a name="integration-server-sdk5-csharp-removeplayersession-syntax"></a>

```
GenericOutcome RemovePlayerSession(String playerSessionId)
```

### Parameters
<a name="integration-server-sdk5-csharp-removeplayersession-parameter"></a>

**playerSessionId**  
建立新玩家工作階段Amazon GameLift Servers時由 發出的唯一 ID。

### 傳回值
<a name="integration-server-sdk5-csharp-removeplayersession-return"></a>

傳回一般結果，其中包含成功或失敗以及錯誤訊息。

### 範例
<a name="integration-server-sdk5-csharp-removeplayersession-example"></a>

```
GenericOutcome removePlayerSessionOutcome = GameLiftServerAPI.RemovePlayerSession(playerSessionId);
```

## DescribePlayerSessions()
<a name="integration-server-sdk5-csharp-describeplayersessions"></a>

擷取玩家工作階段資料，其中包括設定、工作階段中繼資料和玩家資料。使用此動作可取得單一玩家工作階段資訊、一個遊戲工作階段中所有玩家工作階段的資訊，或是與單一玩家 ID 關聯的所有玩家工作階段資訊。

### 語法
<a name="integration-server-sdk5-csharp-describeplayersessions-syntax"></a>

```
DescribePlayerSessionsOutcome DescribePlayerSessions(DescribePlayerSessionsRequest describePlayerSessionsRequest)
```

### Parameters
<a name="integration-server-sdk5-csharp-describeplayersessions-parameter"></a>

**[DescribePlayerSessionsRequest](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-dataypes-playersessions)**  
描述要擷取哪些玩家工作階段的[DescribePlayerSessionsRequest](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-dataypes-playersessions)物件。

### 傳回值
<a name="integration-server-sdk5-csharp-describeplayersessions-return"></a>

如果成功， 會傳回[DescribePlayerSessionsOutcome](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-describeplayersessionsoutcome)物件，其中包含一組符合請求參數的玩家工作階段物件。

### 範例
<a name="integration-server-sdk5-csharp-describeplayersessions-example"></a>

此範例展示了讓所有玩家工作階段均主動連線至指定之遊戲工作階段的請求。透過省略 *NextToken* 並將*限制*值設定為 10， Amazon GameLift Servers會傳回符合請求的前 10 個玩家工作階段記錄。

```
// Set request parameters 
DescribePlayerSessionsRequest describePlayerSessionsRequest = new DescribePlayerSessionsRequest()
{
  GameSessionId = GameLiftServerAPI.GetGameSessionId().Result,    //gets the ID for the current game session
  Limit = 10,
  PlayerSessionStatusFilter = 
    PlayerSessionStatusMapper.GetNameForPlayerSessionStatus(PlayerSessionStatus.ACTIVE)
}; 
// Call DescribePlayerSessions
DescribePlayerSessionsOutcome describePlayerSessionsOutcome = 
  GameLiftServerAPI.DescribePlayerSessions(describePlayerSessionsRequest);
```

## StartMatchBackfill()
<a name="integration-server-sdk5-csharp-startmatchbackfill"></a>

此動作會傳送請求，以便替 FlexMatch 所建立的遊戲工作階段​開放空位找到新玩家。如需詳細資訊，請參閱[FlexMatch回填功能](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html)。

此為非同步動作。如果新玩家相符， 會使用回呼函數 Amazon GameLift Servers交付更新的配對建構器資料`OnUpdateGameSession()`。

一個伺服器程序一次僅能有一個使用中的配對回填請求。若要發送新請求，請先呼叫 [StopMatchBackfill()](#integration-server-sdk5-csharp-stopmatchbackfill) 取消原始請求。

### 語法
<a name="integration-server-sdk5-csharp-startmatchbackfill-syntax"></a>

```
StartMatchBackfillOutcome StartMatchBackfill (StartMatchBackfillRequest startBackfillRequest);
```

### Parameters
<a name="integration-server-sdk5-csharp-startmatchbackfill-parameter"></a>

**[StartMatchBackfillRequest](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-dataypes-startmatchbackfillrequest)**  
`StartMatchBackfillRequest` 物件會保留有關回填請求的資訊。

### 傳回值
<a name="integration-server-sdk5-csharp-startmatchbackfill-return"></a>

傳回具有相符回填票證 ID 或失敗並顯示錯誤訊息的[StartMatchBackfillOutcome](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-startmatchbackfilloutcome)物件。

### 範例
<a name="integration-server-sdk5-csharp-startmatchbackfill-example"></a>

```
// Build a backfill request
StartMatchBackfillRequest startBackfillRequest = new StartMatchBackfillRequest()
{
  TicketId = "1111aaaa-22bb-33cc-44dd-5555eeee66ff", //optional
  MatchmakingConfigurationArn = "arn:aws:gamelift:us-west-2:111122223333:matchmakingconfiguration/MyMatchmakerConfig", 
  GameSessionId = GameLiftServerAPI.GetGameSessionId().Result,    // gets ID for current game session
  MatchmakerData matchmakerData = 
    MatchmakerData.FromJson(gameSession.MatchmakerData),  // gets matchmaker data for current players
  // get matchmakerData.Players
  // remove data for players who are no longer connected
  Players = ListOfPlayersRemainingInTheGame
};

// Send backfill request
StartMatchBackfillOutcome startBackfillOutcome = GameLiftServerAPI.StartMatchBackfill(startBackfillRequest);

// Implement callback function for backfill
void OnUpdateGameSession(GameSession myGameSession)
{
  // game-specific tasks to prepare for the newly matched players and update matchmaker data as needed  
}
```

## StopMatchBackfill()
<a name="integration-server-sdk5-csharp-stopmatchbackfill"></a>

取消作用中的配對回填請求。如需詳細資訊，請參閱[FlexMatch回填功能](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html)。

### 語法
<a name="integration-server-sdk5-csharp-stopmatchbackfill-syntax"></a>

```
GenericOutcome StopMatchBackfill (StopMatchBackfillRequest stopBackfillRequest);
```

### Parameters
<a name="integration-server-sdk5-csharp-stopmatchbackfill-parameter"></a>

**[StopMatchBackfillRequest](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-dataypes-stopmatchbackfillrequest)**  
提供您正在停止之配對票證詳細資訊的`StopMatchBackfillRequest`物件。

### 傳回值
<a name="integration-server-sdk5-csharp-stopmatchbackfill-return"></a>

傳回一般結果，其中包含成功或失敗以及錯誤訊息。

### 範例
<a name="integration-server-sdk5-csharp-stopmatchbackfill-example"></a>

```
// Set backfill stop request parameters
StopMatchBackfillRequest stopBackfillRequest = new StopMatchBackfillRequest(){
  TicketId = "1111aaaa-22bb-33cc-44dd-5555eeee66ff", //optional, if not provided one is autogenerated
  MatchmakingConfigurationArn = "arn:aws:gamelift:us-west-2:111122223333:matchmakingconfiguration/MyMatchmakerConfig",
  GameSessionId = GameLiftServerAPI.GetGameSessionId().Result    //gets the ID for the current game session
};
GenericOutcome stopBackfillOutcome = GameLiftServerAPI.StopMatchBackfillRequest(stopBackfillRequest);
```

## GetComputeCertificate()
<a name="integration-server-sdk5-csharp-getcomputecertificate"></a>

 擷取用於加密遊戲伺服器與遊戲用戶端之間網路連線的 TLS 憑證路徑。您可以在向 Amazon GameLift Servers Anywhere 機群註冊運算裝置時使用憑證路徑。如需詳細資訊，請參閱 [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)。

### 語法
<a name="integration-server-sdk5-csharp-getcomputecertificate-syntax"></a>

```
GetComputeCertificateOutcome GetComputeCertificate();
```

### 傳回值
<a name="integration-server-sdk5-csharp-getcomputecertificate-return"></a>

傳回包含下列項目的 GetComputeCertificateResponse 物件：
+  CertificatePath：運算資源上 TLS 憑證的路徑。使用 Amazon GameLift Servers受管機群時，此路徑包含：
  + `certificate.pem`：最終使用者憑證。完整的憑證鏈是`certificateChain.pem`附加到此憑證的 組合。
  + `certificateChain.pem`：包含根憑證和中繼憑證的憑證鏈。
  + `rootCertificate.pem`：根憑證。
  + `privateKey.pem`：最終使用者憑證的私有金鑰。
+ ComputeName：運算資源的名稱。

### 範例
<a name="integration-server-sdk5-csharp-getcomputecertificate-example"></a>

```
GetComputeCertificateOutcome getComputeCertificateOutcome = GameLiftServerAPI.GetComputeCertificate();
```

## GetFleetRoleCredentials()
<a name="integration-server-sdk5-csharp-getfleetrolecredentials"></a>

擷取授權 與其他 互動的 IAM 角色登入Amazon GameLift Servers資料 AWS 服務。如需詳細資訊，請參閱[將Amazon GameLift Servers託管遊戲伺服器連接到其他 AWS 資源](gamelift-sdk-server-resources.md)。

### 語法
<a name="integration-server-sdk5-csharp-getfleetrolecredentials-syntax"></a>

```
GetFleetRoleCredentialsOutcome GetFleetRoleCredentials(GetFleetRoleCredentialsRequest request);
```

### Parameters
<a name="integration-server-sdk5-csharp-getfleetrolecredentials-parameters"></a>

[GetFleetRoleCredentialsRequest](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-dataypes-getfleetrolecredentialsrequest)  
角色登入資料，可將 AWS 資源的有限存取權延伸到遊戲伺服器。

### 傳回值
<a name="integration-server-sdk5-csharp-getfleetrolecredentials-return"></a>

其會傳回 [GetFleetRoleCredentialsOutcome](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-getfleetrolecredentialsoutcome) 物件。

### 範例
<a name="integration-server-sdk5-csharp-getfleetrolecredentials-example"></a>

```
// form the fleet credentials request  
GetFleetRoleCredentialsRequest getFleetRoleCredentialsRequest = new GetFleetRoleCredentialsRequest(){  
  RoleArn = "arn:aws:iam::123456789012:role/service-role/exampleGameLiftAction"  
};
GetFleetRoleCredentialsOutcome GetFleetRoleCredentialsOutcome credentials = GetFleetRoleCredentials(getFleetRoleCredentialsRequest);
```

## Destroy()
<a name="integration-server-sdk5-csharp-destroy"></a>

從記憶體釋放Amazon GameLift Servers遊戲伺服器 SDK。最佳實務是在終止程序之後`ProcessEnding()`和之前呼叫此方法。如果您使用的是 Anywhere 機群，而且沒有在每次遊戲工作階段後終止伺服器程序，請在通知程序已準備好使用 託管遊戲工作階段之前，先呼叫 Amazon GameLift Servers `Destroy()`，然後`InitSDK()`重新初始化 `ProcessReady()`。

### 語法
<a name="integration-server-sdk5-csharp-destroy-syntax"></a>

```
GenericOutcome Destroy()
```

### 傳回值
<a name="integration-server-sdk5-csharp-destroy-return"></a>

傳回一般結果，其中包含成功或失敗以及錯誤訊息。

### 範例
<a name="integration-server-sdk5-csharp-destroy-example"></a>

```
// Operations to end game sessions and the server process
GenericOutcome processEndingOutcome = GameLiftServerAPI.ProcessEnding();

// Shut down and destroy the instance of the GameLift Game Server SDK
GenericOutcome destroyOutcome = GameLiftServerAPI.Destroy();

// Exit the process with success or failure
if (processEndingOutcome.Success)
  { 
    Environment.Exit(0); 
  }
else
  {
    Console.WriteLine("ProcessEnding() failed. Error: " + processEndingOutcome.Error.ToString());
    Environment.Exit(-1); 
  }
```

# 適用於 Amazon GameLift Servers -- 動作的 Go 伺服器 SDK
<a name="integration-server-sdk-go-actions"></a>

使用伺服器 SDK 5.x 參考整合多玩家遊戲，以便與 進行託管。 Amazon GameLift Servers如需整合程序的指引，請參閱 [使用伺服器 SDK 將 Amazon GameLift Servers新增至您的遊戲伺服器](gamelift-sdk-server-api.md)。

`GameLiftServerAPI.go` 定義 Go 伺服器 SDK 動作。

# 適用於 Amazon GameLift Servers -- 資料類型的 Go 伺服器 SDK
<a name="integration-server-sdk-go-datatypes"></a>

使用伺服器 SDK 參考來整合多玩家遊戲，以便與 進行託管Amazon GameLift Servers。如需整合程序的指引，請參閱 [使用伺服器 SDK 將 Amazon GameLift Servers新增至您的遊戲伺服器](gamelift-sdk-server-api.md)。

`GameLiftServerAPI.go` 定義 Go 伺服器 SDK 動作。

[適用於 Amazon GameLift Servers -- 動作的 Go 伺服器 SDK](integration-server-sdk-go-actions.md)

**Topics**
+ [LogParameters](#integration-server-sdk-go-dataypes-log)
+ [MetricsParameters](#integration-server-sdk-go-dataypes-metrics)
+ [ProcessParameters](#integration-server-sdk-go-dataypes-process)
+ [UpdateGameSession](#integration-server-sdk-go-dataypes-updategamesession)
+ [GameSession](#integration-server-sdk-go-dataypes-gamesession)
+ [ServerParameters](#integration-server-sdk-go-dataypes-serverparameters)
+ [StartMatchBackfillRequest](#integration-server-sdk-go-dataypes-startmatchbackfillrequest)
+ [Player](#integration-server-sdk-go-dataypes-player)
+ [DescribePlayerSessionsRequest](#integration-server-sdk-go-dataypes-playersessions)
+ [StopMatchBackfillRequest](#integration-server-sdk-go-dataypes-stopmatchbackfillrequest)
+ [GetFleetRoleCredentialsRequest](#integration-server-sdk-go-dataypes-getfleetrolecredentialsrequest)

## LogParameters
<a name="integration-server-sdk-go-dataypes-log"></a>

識別在遊戲工作階段期間產生的檔案的物件，Amazon GameLift Servers您想要在遊戲工作階段結束後上傳和存放。遊戲伺服器會將 Amazon GameLift Servers作為[ProcessReady()](integration-server-sdk-go-actions.md#integration-server-sdk-go-processready)呼叫中`ProcessParameters`物件的一部分`LogParameters`提供給 。


|  |  | 
| --- |--- |
|  **屬性**  | Description | 
| LogPaths |  Amazon GameLift Servers 您要存放以供日後存取的遊戲伺服器日誌檔案的目錄路徑清單。伺服器程序會在每個遊戲工作階段期間產生這些檔案。您可以在遊戲伺服器中定義檔案路徑和名稱，並將其存放在根遊戲建置目錄中。 日誌路徑必須是絕對的。例如，如果您的遊戲組建將遊戲工作階段日誌存放在路徑中，例如 `MyGame\sessionLogs\`，則路徑會位於 Windows 執行個體`c:\game\MyGame\sessionLogs`上。 **Type (類型)**：`[]string` **必要**：否  | 

## MetricsParameters
<a name="integration-server-sdk-go-dataypes-metrics"></a>

用於初始化指標系統的物件通訊組態參數。此組態用於設定 StatsD 報告、當機報告和指標處理行為。遊戲伺服器Amazon GameLift Servers會在[InitMetrics()](integration-server-sdk-go-actions.md#integration-server-sdk-go-initmetrics)呼叫過程中提供 `MetricsParameters`給 。


|  |  | 
| --- |--- |
|  **屬性**  | Description | 
| StatsdHost |  用於指標報告的 StatsD 伺服器主機 （例如 "localhost")。 **Type (類型)**：`string` **必要**：是  | 
| StatsdPort |  用於指標報告的 StatsD 伺服器連接埠 （例如 8125)。 **Type (類型)**：`int` **必要**：是  | 
| CrashReporterHost |  用於當機追蹤和程序監控的當機報告程式主機。 **Type (類型)**：`string` **必要**：是  | 
| CrashReporterPort |  用於當機追蹤和程序監控的當機報告程式連接埠。 **Type (類型)**：`int` **必要**：是  | 
| FlushIntervalMs |  指標排清間隔，以毫秒為單位。控制指標傳送至 StatsD 的頻率。 **Type (類型)**：`int` **必要**：是  | 
| MaxPacketSize |  指標的封包大小上限，以位元組為單位。限制傳送至 StatsD 的 UDP 封包大小。 **Type (類型)**：`int` **必要**：是  | 

## ProcessParameters
<a name="integration-server-sdk-go-dataypes-process"></a>

描述伺服器程序與 之間通訊的物件Amazon GameLift Servers。伺服器程序Amazon GameLift Servers透過呼叫 將此資訊提供給 [ProcessReady()](integration-server-sdk-go-actions.md#integration-server-sdk-go-processready)。


|  |  | 
| --- |--- |
|  **屬性**  | Description | 
| LogParameters | 具有在遊戲工作階段期間產生之檔案目錄路徑的物件。 會Amazon GameLift Servers複製和存放檔案以供日後存取。**Type (類型)**：`LogParameters`**必要**：否 | 
| OnHealthCheck | Amazon GameLift Servers 呼叫 從伺服器程序請求運作狀態報告的回呼函數。 每 60 秒會Amazon GameLift Servers呼叫此函數，並等待 60 秒進行回應。FALSE 如果運作狀態TRUE良好，伺服器程序會傳回 。如果未傳回任何回應， 會將伺服器程序Amazon GameLift Servers記錄為運作狀態不佳。**Type (類型)**：`OnHealthCheck func() bool`**必要**：否 | 
| OnProcessTerminate | Amazon GameLift Servers 呼叫 以強制伺服器程序關閉的回呼函數。呼叫此函數後， 會Amazon GameLift Servers等待 5 分鐘讓伺服器程序關閉，並在關閉伺服器程序之前回應[ProcessEnding()](integration-server-sdk-go-actions.md#integration-server-sdk-go-processending)呼叫。**Type (類型)**：`OnProcessTerminate func()`**必要**：是 | 
| OnStartGameSession | Amazon GameLift Servers 呼叫 以將更新後的遊戲工作階段物件傳遞至伺服器程序的回呼函數。 會在處理配對回填請求時Amazon GameLift Servers呼叫此函數，以提供更新後的配對建構器資料。它會傳遞[GameSession](#integration-server-sdk-go-dataypes-gamesession)物件、狀態更新 (updateReason) 和相符回填票證 ID。**Type (類型)**：`OnStartGameSession func (model.GameSession )`**必要**：是 | 
| OnUpdateGameSession | Amazon GameLift Servers 叫用以將更新後的遊戲工作階段資訊傳遞至伺服器程序的回呼函數。 會在處理配對回填請求後Amazon GameLift Servers呼叫此函數，以提供更新的配對建構器資料。**Type (類型)**：`OnUpdateGameSession func (model.UpdateGameSession)`**必要**：否 | 
| Port | 伺服器程序接聽新玩家連線的連接埠號碼。值必須屬於為部署此遊戲伺服器組建之機群所設定的連接埠範圍。此連接埠號碼包含在遊戲工作階段和遊戲工作階段物件中，遊戲工作階段會使用該物件來連接到伺服器程序。**Type (類型)**：`int`**必要**：是 | 

## UpdateGameSession
<a name="integration-server-sdk-go-dataypes-updategamesession"></a>

遊戲工作階段物件的更新，其中包括遊戲工作階段更新的原因，以及如果使用回填來填充遊戲工作階段中的玩家工作階段，則相關的回填票證 ID。


| Properties | **Description** | 
| --- | --- | 
| GameSession | [GameSession](#integration-server-sdk-go-dataypes-gamesession) 物件。GameSession 物件包含描述遊戲工作階段的屬性。**Type (類型)**：`GameSession GameSession()`**必要**：是 | 
| UpdateReason | 正在更新遊戲工作階段的原因。**Type (類型)**：`UpdateReason UpdateReason()`**必要**：是 | 
| BackfillTicketId | 嘗試更新遊戲工作階段的回填票證 ID。**Type (類型)**：`String`**必要**：否 | 

## GameSession
<a name="integration-server-sdk-go-dataypes-gamesession"></a>

遊戲工作階段的詳細資訊。


| Properties | **Description** | 
| --- | --- | 
| GameSessionId |  遊戲工作階段的唯一識別符。遊戲工作階段 Amazon Resource Name (ARN) 的格式如下：`arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token>`。 **Type (類型)**：`String` **必要**：否  | 
| 名稱 |  遊戲工作階段的描述性標籤。 **Type (類型)**：`String` **必要**：否  | 
| FleetId |  遊戲工作階段執行所在的機群的唯一識別符。 **Type (類型)**：`String` **必要**：否  | 
| MaximumPlayerSessionCount |  遊戲工作階段的玩家連線數目上限。 **Type (類型)**：`Integer` **必要**：否  | 
| 站點 |  遊戲工作階段的連接埠號碼。若要連線到Amazon GameLift Servers遊戲伺服器，應用程式需要 IP 地址和連接埠號碼。 **Type (類型)**：`Integer` **必要**：否  | 
| IpAddress |  遊戲工作階段的 IP 地址。若要連線到Amazon GameLift Servers遊戲伺服器，應用程式需要 IP 地址和連接埠號碼。 **Type (類型)**：`String` **必要**：否  | 
| GameSessionData |  一組自訂遊戲工作階段屬性，格式為單一字串值。 **Type (類型)**：`String` **必要**：否  | 
| MatchmakerData |  用於建立遊戲工作階段的配對程序資訊，以 JSON 語法格式化為字串。除了使用的配對組態之外，還包含指派給配對的所有玩家的資料，包括玩家屬性和團隊指派。 **Type (類型)**：`String` **必要**：否  | 
| GameProperties |  一組遊戲工作階段的自訂屬性，格式為 key：value 對。這些屬性會與啟動新遊戲工作階段的請求一起傳遞。 **Type (類型)**：`map[string] string` **必要**：否  | 
| DnsName |  指派給執行遊戲工作階段之執行個體的 DNS 識別符。值的格式如下： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/gameliftservers/latest/developerguide/integration-server-sdk-go-datatypes.html) 連線至在啟用 TLS 的機群上執行的遊戲工作階段時，您必須使用 DNS 名稱，而不是 IP 地址。 **Type (類型)**：`String` **必要**：否  | 

## ServerParameters
<a name="integration-server-sdk-go-dataypes-serverparameters"></a>

用來維護 Amazon GameLift Servers Anywhere 伺服器與 Amazon GameLift Servers服務之間連線的資訊。使用 啟動新的伺服器程序時，會使用此資訊[InitSDK()](integration-server-sdk-go-actions.md#integration-server-sdk-go-initsdk)。對於託管在Amazon GameLift Servers受管 EC2 執行個體上的伺服器，請使用空物件。


| Properties | **Description** | 
| --- | --- | 
| WebSocketURL |  當您[https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)使用 Amazon GameLift Servers Anywhere 運算資源時， 會`GameLiftServerSdkEndpoint`Amazon GameLift Servers傳回 。 **Type (類型)**：`string` **必要**：是  | 
| ProcessID |  向託管遊戲的伺服器程序註冊的唯一識別符。 **Type (類型)**：`string` **必要**：是  | 
| HostID |  託管新伺服器程序之運算資源的唯一識別符。 `HostID` 是當您註冊運算`ComputeName`時使用的 。如需詳細資訊，請參閱 [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)。 **Type (類型)**：`string` **必要**：是  | 
| FleetID | 運算註冊目的地機群的唯一識別符。如需詳細資訊，請參閱 [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)。**Type (類型)**：`string`**必要**：是 | 
| AuthToken | 產生的身分驗證字符Amazon GameLift Servers，用於向 驗證您的伺服器Amazon GameLift Servers。如需詳細資訊，請參閱 [GetComputeAuthToken](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GetComputeAuthToken.html)。**Type (類型)**：`string`**必要**：是 | 

## StartMatchBackfillRequest
<a name="integration-server-sdk-go-dataypes-startmatchbackfillrequest"></a>

用來建立配對回填請求的資訊。遊戲伺服器會在[StartMatchBackfill()](integration-server-sdk-go-actions.md#integration-server-sdk-go-startmatchbackfill)通話Amazon GameLift Servers中將此資訊傳達給 。


| Properties | **Description** | 
| --- | --- | 
| GameSessionArn |  唯一的遊戲工作階段識別符。API 操作會以 ARN 格式`[GetGameSessionId](https://docs.aws.amazon.com/gameliftservers/latest/developerguide/integration-server-sdk-go-actions.html#integration-server-sdk-go-getgamesessionid)`傳回識別符。 **Type (類型)**：`String` **必要**：是  | 
| MatchmakingConfigurationArn |  配對建構器用於此請求的唯一識別符 （以 ARN 的形式）。原始遊戲工作階段的配對建構器 ARN 位於配對建構器資料屬性中的遊戲工作階段物件中。如需配對建構器資料的詳細資訊，請參閱[使用配對建構器資料](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-server.html#match-server-data.html)。 **Type (類型)**：`String` **必要**：是  | 
| Players |  一組資料，代表目前在遊戲工作階段中的所有玩家。配對建構器使用此項資訊搜尋適合配對現有玩家的新玩家。 **Type (類型)**：`[]model.Player` **必要**：是  | 
| TicketId |  配對或配對回填請求票證的唯一識別符。如果您不提供值， Amazon GameLift Servers會產生值。您可使用此識別項依據需求追蹤配對回填票證狀態或取消要求。 **Type (類型)**：`String` **必要**：否  | 

## Player
<a name="integration-server-sdk-go-dataypes-player"></a>

在配對中代表玩家的物件。當配對請求開始時，玩家會有玩家 ID、屬性和可能的延遲資料。 會在配對完成後Amazon GameLift Servers新增隊伍資訊。


| Properties | **Description** | 
| --- | --- | 
| LatencyInMS |  一組以毫秒為單位的值，指出玩家連線到某個位置時所經歷的延遲量。 如果使用此屬性，則玩家只會符合列出的位置。若配對構建器有評估玩家延遲的規則，玩家則必須回報延遲度，方可配對。 **Type (類型)**：`map[string] int` **必要**：否  | 
| PlayerAttributes |  包含玩家資訊的金鑰：值對集合，可用於配對。玩家屬性金鑰必須符合配對規則集中使用的 PlayerAttributes。 如需玩家屬性的詳細資訊，請參閱 [AttributeValue](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_AttributeValue.html)。 **Type (類型)**：`map[string] AttributeValue` **必要**：否  | 
| PlayerId |  玩家的唯一識別符。 **Type (類型)**：`String` **必要**：否  | 
| 團隊 |  玩家在配對中獲指派的隊伍名稱。您可以在配對規則集中定義團隊名稱。 **Type (類型)**：`String` **必要**：否  | 

## DescribePlayerSessionsRequest
<a name="integration-server-sdk-go-dataypes-playersessions"></a>

指定要擷取哪些玩家工作階段的物件。伺服器程序會在[DescribePlayerSessions()](integration-server-sdk-go-actions.md#integration-server-sdk-go-describeplayersessions)呼叫 時提供此資訊Amazon GameLift Servers。


| Properties | **Description** | 
| --- | --- | 
| GameSessionID |  唯一的遊戲工作階段識別符。請使用此參數要求特定遊戲工作階段的所有玩家工作階段。 遊戲工作階段 ID 格式為 `arn:aws:gamelift:<region>::gamesession/fleet-<fleet ID>/<ID string>`。`GameSessionID` 是自訂 ID 字串或產生的字串。 **Type (類型)**：`String` **必要**：否  | 
| PlayerSessionID |  玩家工作階段的唯一識別符。使用此參數請求單一特定玩家工作階段。 **Type (類型)**：`String` **必要**：否  | 
| PlayerID |  玩家的唯一識別符。使用此參數來請求特定玩家的所有玩家工作階段。請參閱 [產生玩家 IDs](player-sessions-player-identifiers.md)。 **Type (類型)**：`String` **必要**：否  | 
| PlayerSessionStatusFilter |  要篩選結果的玩家工作階段狀態。可能的玩家工作階段狀態包括： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/gameliftservers/latest/developerguide/integration-server-sdk-go-datatypes.html) **Type (類型)**：`String` **必要**：否  | 
| NextToken |  表示結果下一頁開始的字符。若要指定結果集的開頭，請不要提供值。如果您提供玩家工作階段 ID，則會忽略此參數。 **Type (類型)**：`String` **必要**：否  | 
| Limit |  回傳結果的數量上限。如果您提供玩家工作階段 ID，則會忽略此參數。 **Type (類型)**：`int` **必要**：否  | 

## StopMatchBackfillRequest
<a name="integration-server-sdk-go-dataypes-stopmatchbackfillrequest"></a>

用來取消配對回填請求的資訊。遊戲伺服器會在[StopMatchBackfill()](integration-server-sdk-go-actions.md#integration-server-sdk-go-stopmatchbackfill)通話中將此資訊傳達給 Amazon GameLift Servers 服務。


| Properties | **Description** | 
| --- | --- | 
| GameSessionArn |  取消請求的唯一遊戲工作階段識別符。 **Type (類型)**：`string` **必要**：否  | 
| MatchmakingConfigurationArn |  傳送此請求之配對建構器的唯一識別符。 **Type (類型)**：`string` **必要**：否  | 
| TicketId |  要取消之回填請求票證的唯一識別符。 **Type (類型)**：`string` **必要**：否  | 

## GetFleetRoleCredentialsRequest
<a name="integration-server-sdk-go-dataypes-getfleetrolecredentialsrequest"></a>

角色登入資料，可將 AWS 資源的有限存取權延伸到遊戲伺服器。如需詳細資訊，請參閱 [設定 的 IAM 服務角色 Amazon GameLift Servers](setting-up-role.md)。


| Properties | **Description** | 
| --- | --- | 
| RoleArn | 服務角色的 ARN，可延伸對 AWS 資源的有限存取權。**Type (類型)**：`string`**必要**：是 | 
| RoleSessionName | 描述使用角色登入資料的工作階段名稱。**Type (類型)**：`string`**必要**：是 | 

[適用於 Amazon GameLift Servers -- 資料類型的 Go 伺服器 SDK](integration-server-sdk-go-datatypes.md)

**Topics**
+ [適用於 Amazon GameLift Servers -- 資料類型的 Go 伺服器 SDK](integration-server-sdk-go-datatypes.md)
+ [GetSdkVersion()](#integration-server-sdk-go-getsdkversion)
+ [InitMetrics()](#integration-server-sdk-go-initmetrics)
+ [InitMetricsFromEnvironment()](#integration-server-sdk-go-initmetricsfromenv)
+ [InitSDK()](#integration-server-sdk-go-initsdk)
+ [ProcessReady()](#integration-server-sdk-go-processready)
+ [ProcessEnding()](#integration-server-sdk-go-processending)
+ [ActivateGameSession()](#integration-server-sdk-go-activategamesession)
+ [UpdatePlayerSessionCreationPolicy()](#integration-server-sdk-go-updateplayersessioncreationpolicy)
+ [GetGameSessionId()](#integration-server-sdk-go-getgamesessionid)
+ [GetTerminationTime()](#integration-server-sdk-go-getterm)
+ [AcceptPlayerSession()](#integration-server-sdk-go-acceptplayersession)
+ [RemovePlayerSession()](#integration-server-sdk-go-removeplayersession)
+ [DescribePlayerSessions()](#integration-server-sdk-go-describeplayersessions)
+ [StartMatchBackfill()](#integration-server-sdk-go-startmatchbackfill)
+ [StopMatchBackfill()](#integration-server-sdk-go-stopmatchbackfill)
+ [GetComputeCertificate()](#integration-server-sdk-go-getcomputecertificate)
+ [GetFleetRoleCredentials()](#integration-server-sdk-go-getfleetrolecredentials)
+ [Destroy()](#integration-server-sdk-go-destroy)

## GetSdkVersion()
<a name="integration-server-sdk-go-getsdkversion"></a>

傳回內建至伺服器程序的目前開發套件版本編號。

### 語法
<a name="integration-server-sdk-go-getsdkversion-syntax"></a>

```
func GetSdkVersion() (string, error)
```

### 傳回值
<a name="integration-server-sdk-go-getsdkversion-return"></a>

如果成功， 會以字串的形式傳回目前的 SDK 版本。傳回的字串包含版本號碼 （範例 `5.0.0`)。如果不成功， 會傳回錯誤訊息，例如 `common.SdkVersionDetectionFailed`。

### 範例
<a name="integration-server-sdk-go-getsdkversion-example"></a>

```
version, err := server.GetSdkVersion()
```

## InitMetrics()
<a name="integration-server-sdk-go-initmetrics"></a>

初始化 Amazon GameLift Servers SDK 的指標集合。此方法會設定指標報告，以協助監控伺服器效能和運作狀態。在 之後[InitSDK()](#integration-server-sdk-go-initsdk)但在 之前呼叫此方法[ProcessReady()](#integration-server-sdk-go-processready)。

### 語法
<a name="integration-server-sdk-go-initmetrics-syntax"></a>

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

### Parameters
<a name="integration-server-sdk-go-initmetrics-parameter"></a>

MetricsParameters （選用）  
設定指標集合的`MetricsParameters`物件。如果未提供，則會使用預設指標組態。MetricsParameters 結構包含下列欄位：  
+ `StatsdHost` - StatsD 伺服器的主機名稱或 IP 地址。
+ `StatsdPort` - StatsD 伺服器的連接埠號碼。
+ `CrashReporterHost` - 損毀報告程式服務的主機名稱或 IP 地址。
+ `CrashReporterPort` - 損毀報告程式服務的連接埠號碼。
+ `FlushIntervalMs` - 清除指標資料的間隔，以毫秒為單位。
+ `MaxPacketSize` - 指標封包的大小上限，以位元組為單位。
如需 MetricsParameters 結構的詳細資訊，請參閱適用於 [C\$1 資料類型的伺服器 SDK 5.x](https://docs.aws.amazon.com/gameliftservers/latest/developerguide/integration-server-sdk5-csharp-datatypes.html)。

### 傳回值
<a name="integration-server-sdk-go-initmetrics-return"></a>

如果成功， 會傳回`nil`錯誤，指出指標集合已成功初始化。

### 範例
<a name="integration-server-sdk-go-initmetrics-example"></a>

使用預設組態初始化指標：

```
err := server.InitMetrics()
```

使用自訂組態初始化指標：

```
metricsParams := MetricsParameters{
    StatsdHost:        "localhost",
    StatsdPort:        8125,
    CrashReporterHost: "localhost",
    CrashReporterPort: 9125,
    FlushIntervalMs:   5000,
    MaxPacketSize:     1024,
}

err := server.InitMetrics(metricsParams)
```

## InitMetricsFromEnvironment()
<a name="integration-server-sdk-go-initmetricsfromenv"></a>

使用來自環境變數的組態，初始化 Amazon GameLift Servers SDK 的指標集合。此方法使用從執行時間環境衍生的預設設定來設定指標報告。

在 之後[InitSDK()](#integration-server-sdk-go-initsdk)但在 之前呼叫此方法[ProcessReady()](#integration-server-sdk-go-processready)。

### 語法
<a name="integration-server-sdk-go-initmetricsfromenv-syntax"></a>

```
func InitMetricsFromEnvironment() error
```

### 傳回值
<a name="integration-server-sdk-go-initmetricsfromenv-return"></a>

如果成功， 會傳回`nil`錯誤，指出已成功使用環境組態初始化指標集合。

### 範例
<a name="integration-server-sdk-go-initmetricsfromenv-example"></a>

```
err := server.InitMetricsFromEnvironment()
```

## InitSDK()
<a name="integration-server-sdk-go-initsdk"></a>

初始化 Amazon GameLift Servers 開發套件。在與 相關的任何其他初始化Amazon GameLift Servers發生之前，請在啟動時呼叫此方法。此方法會設定伺服器和服務之間的通訊Amazon GameLift Servers。

### 語法
<a name="integration-server-sdk-go-initsdk-syntax"></a>

```
func InitSDK(params ServerParameters) error 
```

### Parameters
<a name="integration-server-sdk-go-initsdk-parameter"></a>

[ServerParameters](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-serverparameters)  
若要在 Amazon GameLift Servers Anywhere 機群上初始化遊戲伺服器，請使用下列資訊建構`ServerParameters`物件：  
+ 用來連線至遊戲伺服器的 WebSocket URL。
+ 用於託管遊戲伺服器的程序 ID。
+ 託管遊戲伺服器程序的運算 ID。
+ 包含 Amazon GameLift Servers Anywhere 運算的Amazon GameLift Servers機群 ID。
+ Amazon GameLift Servers 操作產生的授權字符。
若要在Amazon GameLift Servers受管 EC2 機群上初始化遊戲伺服器，請建構沒有參數的`ServerParameters`物件。透過此呼叫，Amazon GameLift Servers代理程式會設定運算環境，並自動為您連線至 Amazon GameLift Servers服務。

### 傳回值
<a name="integration-server-sdk-go-initsdk-return"></a>

如果成功， 會傳回`nil`錯誤，指出伺服器程序已準備好呼叫 [ProcessReady()](#integration-server-sdk-go-processready)。

**注意**  
如果針對部署到 Anywhere 機群的遊戲組建呼叫`InitSDK()`失敗，請檢查建立組建資源時使用的`ServerSdkVersion`參數。您必須將此值明確設定為正在使用的伺服器 SDK 版本。此參數的預設值為 4.x，不相容。若要解決此問題，請建立新的組建，並將其部署到新的機群。

### 範例
<a name="integration-server-sdk-go-initsdk-example"></a>

Amazon GameLift Servers Anywhere 範例

```
//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 Servers 受管 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()
<a name="integration-server-sdk-go-processready"></a>

Amazon GameLift Servers 通知伺服器程序已準備好託管遊戲工作階段。叫用 後呼叫此方法[InitSDK()](#integration-server-sdk-go-initsdk)。每個程序只能呼叫此方法一次。

### 語法
<a name="integration-server-sdk-go-processready-syntax"></a>

```
func ProcessReady(param ProcessParameters) error
```

### Parameters
<a name="integration-server-sdk-go-processready-parameter"></a>

**ProcessParameters**  
[ProcessParameters](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-process) 物件會傳達伺服器程序的下列相關資訊：  
+ 在遊戲伺服器程式碼中實作的回呼方法名稱，Amazon GameLift Servers服務會叫用這些方法來與伺服器程序通訊。
+ 伺服器程序正在接聽的連接埠號碼。
+ 包含Amazon GameLift Servers您要擷取和儲存之任何遊戲工作階段特定檔案路徑的[LogParameters](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-log)資料類型。

### 傳回值
<a name="integration-server-sdk-go-processready-return"></a>

如果方法失敗，則傳回包含錯誤訊息的錯誤。`nil` 如果方法成功，則傳回 。

### 範例
<a name="integration-server-sdk-go-processready-example"></a>

此範例會說明 [ProcessReady()](#integration-server-sdk-go-processready) 呼叫和委派函數的實作。

```
// 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()
<a name="integration-server-sdk-go-processending"></a>

Amazon GameLift Servers 通知伺服器程序正在終止。在所有其他清除任務 （包括關閉作用中的遊戲工作階段） 之後，以及在終止程序之前，呼叫此方法。根據 的結果`ProcessEnding()`，程序會以成功 (0) 或錯誤 (-1) 結束並產生機群事件。如果程序因錯誤而終止，產生的機群事件為 `SERVER_PROCESS_TERMINATED_UNHEALTHY`。

### 語法
<a name="integration-server-sdk-go-processending-syntax"></a>

```
func ProcessEnding() error
```

### 傳回值
<a name="integration-server-sdk-go-processending-return"></a>

傳回 0 錯誤代碼或定義的錯誤代碼。

### 範例
<a name="integration-server-sdk-go-processending-example"></a>

```
// 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()
<a name="integration-server-sdk-go-activategamesession"></a>

Amazon GameLift Servers 通知伺服器程序已啟用遊戲工作階段，現在已準備好接收玩家連線。在所有遊戲工作階段初始化後，此動作會呼叫為回`onStartGameSession()`呼函數的一部分。

### 語法
<a name="integration-server-sdk-go-activategamesession-syntax"></a>

```
func ActivateGameSession() error
```

### 傳回值
<a name="integration-server-sdk-go-activategamesession-return"></a>

如果方法失敗，則傳回包含錯誤訊息的錯誤。

### 範例
<a name="integration-server-sdk-go-activategamesession-example"></a>

此範例顯示`ActivateGameSession()`稱為`onStartGameSession()`委派函數的一部分。

```
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()
<a name="integration-server-sdk-go-updateplayersessioncreationpolicy"></a>

更新目前遊戲工作階段的能力，以接受新的玩家工作階段。遊戲工作階段可設定為接受或拒絕所有新的玩家工作階段。

### 語法
<a name="integration-server-sdk-go-updateplayersessioncreationpolicy-syntax"></a>

```
func UpdatePlayerSessionCreationPolicy(policy model.PlayerSessionCreationPolicy) error
```

### Parameters
<a name="integration-server-sdk-go-updateplayersessioncreationpolicy-parameter"></a>

**playerSessionCreationPolicy**  
指出遊戲工作階段是否接受新玩家的字串值。  
有效值包含：  
+ **`model.AcceptAll`** – 接受所有新的玩家工作階段。
+ **`model.DenyAll`** – 拒絕所有新的玩家工作階段。

### 傳回值
<a name="integration-server-sdk-go-updateplayersessioncreationpolicy-return"></a>

如果發生失敗，則傳回包含錯誤訊息的錯誤。

### 範例
<a name="integration-server-sdk-go-updateplayersessioncreationpolicy-example"></a>

此範例設定目前遊戲工作階段的加入政策為可接受所有玩家。

```
err := server.UpdatePlayerSessionCreationPolicy(model.AcceptAll)
```

## GetGameSessionId()
<a name="integration-server-sdk-go-getgamesessionid"></a>

擷取作用中伺服器程序託管的遊戲工作階段 ID。

### 語法
<a name="integration-server-sdk-go-getgamesessionid-syntax"></a>

```
func GetGameSessionID() (string, error)
```

### Parameters
<a name="integration-server-sdk-go-getgamesessionid-parameter"></a>

此動作沒有參數。

### 傳回值
<a name="integration-server-sdk-go-getgamesessionid-return"></a>

如果成功， 會傳回遊戲工作階段 ID 和 nil 錯誤。對於尚未透過遊戲工作階段啟用的閒置程序，呼叫會傳回空字串和`nil`錯誤。

### 範例
<a name="integration-server-sdk-go-getgamesessionid-example"></a>

```
gameSessionID, err := server.GetGameSessionID()
```

## GetTerminationTime()
<a name="integration-server-sdk-go-getterm"></a>

傳回伺服器程序排程在可用終止時間時關閉的時間。伺服器程序在收到來自 的回`onProcessTerminate()`呼後會採取此動作Amazon GameLift Servers。 Amazon GameLift Servers`onProcessTerminate()`會呼叫 ，原因如下：
+ 當伺服器程序回報運作狀態不佳或尚未回應 時Amazon GameLift Servers。
+ 在縮減規模事件期間終止執行個體時。
+ 當執行個體因 [spot-instance 中斷](spot-tasks.md)而終止時。

### 語法
<a name="integration-server-sdk-go-getterm-syntax"></a>

```
func GetTerminationTime() (int64, error)
```

### 傳回值
<a name="integration-server-sdk-go-getterm-return"></a>

如果成功， 會以 epoch 秒傳回排定關閉伺服器程序的時間戳記，並終止`nil`錯誤。值是終止時間，以 經過的刻度表示`0001 00:00:00`。例如，日期時間值`2020-09-13 12:26:40 -000Z`等於`637355968000000000`刻度。如果沒有可用的終止時間， 會傳回錯誤訊息。

### 範例
<a name="integration-server-sdk-go-getterm-example"></a>

```
terminationTime, err := server.GetTerminationTime()
```

## AcceptPlayerSession()
<a name="integration-server-sdk-go-acceptplayersession"></a>

Amazon GameLift Servers 通知具有指定玩家工作階段 ID 的玩家已連線至伺服器程序，且需要驗證。 Amazon GameLift Servers 會驗證玩家工作階段 ID 是否有效。驗證玩家工作階段後， 會將玩家位置Amazon GameLift Servers的狀態從 `RESERVED`變更為 `ACTIVE`。

### 語法
<a name="integration-server-sdk-go-acceptplayersession-syntax"></a>

```
func AcceptPlayerSession(playerSessionID string) error
```

### Parameters
<a name="integration-server-sdk-go-acceptplayersession-parameter"></a>

`playerSessionId`  
建立新玩家工作階段Amazon GameLift Servers時由 發出的唯一 ID。

### 傳回值
<a name="integration-server-sdk-go-acceptplayersession-return"></a>

傳回一般結果，其中包含成功或失敗以及錯誤訊息。

### 範例
<a name="integration-server-sdk-go-acceptplayersession-example"></a>

此範例會處理連線請求，其中包含驗證和拒絕非有效的玩家工作階段 IDs。

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

## RemovePlayerSession()
<a name="integration-server-sdk-go-removeplayersession"></a>

Amazon GameLift Servers 通知玩家已中斷與伺服器程序的連線。作為回應， Amazon GameLift Servers 會將玩家位置變更為可用。

### 語法
<a name="integration-server-sdk-go-removeplayersession-syntax"></a>

```
func RemovePlayerSession(playerSessionID string) error
```

### Parameters
<a name="integration-server-sdk-go-removeplayersession-parameter"></a>

**`playerSessionId`**  
建立新玩家工作階段Amazon GameLift Servers時由 發出的唯一 ID。

### 傳回值
<a name="integration-server-sdk-go-removeplayersession-return"></a>

傳回一般結果，其中包含成功或失敗以及錯誤訊息。

### 範例
<a name="integration-server-sdk-go-removeplayersession-example"></a>

```
err := server.RemovePlayerSession(playerSessionID)
```

## DescribePlayerSessions()
<a name="integration-server-sdk-go-describeplayersessions"></a>

擷取玩家工作階段資料，其中包括設定、工作階段中繼資料和玩家資料。使用此方法取得下列相關資訊：
+ 單一玩家工作階段
+ 遊戲工作階段中的所有玩家工作階段
+ 與單一玩家 ID 相關聯的所有玩家工作階段

### 語法
<a name="integration-server-sdk-go-describeplayersessions-syntax"></a>

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

### Parameters
<a name="integration-server-sdk-go-describeplayersessions-parameter"></a>

**[DescribePlayerSessionsRequest](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-playersessions)**  
`DescribePlayerSessionsRequest` 物件描述要擷取的玩家工作階段。

### 傳回值
<a name="integration-server-sdk-go-describeplayersessions-return"></a>

如果成功， 會傳回`DescribePlayerSessionsResult`物件，其中包含一組符合請求參數的玩家工作階段物件。

### 範例
<a name="integration-server-sdk-go-describeplayersessions-example"></a>

此範例會請求主動連線到指定遊戲工作階段的所有玩家工作階段。透過省略 *NextToken* 並將*限制*值設定為 10， 會Amazon GameLift Servers傳回符合請求的前 10 個玩家工作階段記錄。

```
// 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()
<a name="integration-server-sdk-go-startmatchbackfill"></a>

此動作會傳送請求，以便替 FlexMatch 所建立的遊戲工作階段​開放空位找到新玩家。如需詳細資訊，請參閱[FlexMatch回填功能](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html)。

此為非同步動作。如果新玩家相符， 會使用回呼函數 Amazon GameLift Servers交付更新的配對建構器資料`OnUpdateGameSession()`。

一個伺服器程序一次僅能有一個使用中的配對回填請求。若要發送新請求，請先呼叫 [StopMatchBackfill()](#integration-server-sdk-go-stopmatchbackfill) 取消原始請求。

### 語法
<a name="integration-server-sdk-go-startmatchbackfill-syntax"></a>

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

### Parameters
<a name="integration-server-sdk-go-startmatchbackfill-parameter"></a>

**[StartMatchBackfillRequest](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-startmatchbackfillrequest)**  
StartMatchBackfillRequest 物件會傳達下列資訊：  
+ 指派給回填請求的票證 ID。此資訊是選用的；如果未提供 ID，則 Amazon GameLift Servers會產生一個 ID。
+ 傳送請求對象的配對建構器。必須填入完整的組態 ARN。此值位於遊戲工作階段的配對建構器資料中。
+ 要回填的遊戲工作階段 ID。
+ 遊戲工作階段目前玩家的可用配對資料。

### 傳回值
<a name="integration-server-sdk-go-startmatchbackfill-return"></a>

傳回具有相符回填票證 ID 或失敗並顯示錯誤訊息的`StartMatchBackfillResult`物件。

### 範例
<a name="integration-server-sdk-go-startmatchbackfill-example"></a>

```
// 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()
<a name="integration-server-sdk-go-stopmatchbackfill"></a>

取消作用中的配對回填請求。如需詳細資訊，請參閱[FlexMatch回填功能](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html)。

### 語法
<a name="integration-server-sdk-go-stopmatchbackfill-syntax"></a>

```
func StopMatchBackfill(req request.StopMatchBackfillRequest) error
```

### Parameters
<a name="integration-server-sdk-go-stopmatchbackfill-parameter"></a>

**[StopMatchBackfillRequest](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-stopmatchbackfillrequest)**  
StopMatchBackfillRequest 物件，可識別要取消的配對票證：  
+ 指派給回填請求的票證 ID。
+ 回填請求傳送到的配對建構器。
+ 與回填請求相關聯的遊戲工作階段。

### 傳回值
<a name="integration-server-sdk-go-stopmatchbackfill-return"></a>

傳回一般結果，其中包含成功或失敗以及錯誤訊息。

### 範例
<a name="integration-server-sdk-go-stopmatchbackfill-example"></a>

```
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()
<a name="integration-server-sdk-go-getcomputecertificate"></a>

擷取用於加密遊戲伺服器與遊戲用戶端之間網路連線的 TLS 憑證路徑。您可以在向 Amazon GameLift Servers Anywhere 機群註冊運算裝置時使用憑證路徑。如需詳細資訊，請參閱 [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)。

### 語法
<a name="integration-server-sdk-go-getcomputecertificate-syntax"></a>

```
func GetComputeCertificate() (result.GetComputeCertificateResult, error)
```

### 傳回值
<a name="integration-server-sdk-go-getcomputecertificate-return"></a>

傳回包含下列項目的`GetComputeCertificateResult`物件：
+  CertificatePath：運算資源上 TLS 憑證的路徑。使用 Amazon GameLift Servers受管機群時，此路徑包含：
  + `certificate.pem`：最終使用者憑證。完整的憑證鏈是`certificateChain.pem`附加到此憑證的 組合。
  + `certificateChain.pem`：包含根憑證和中繼憑證的憑證鏈。
  + `rootCertificate.pem`：根憑證。
  + `privateKey.pem`：最終使用者憑證的私有金鑰。
+ ComputeName：運算資源的名稱。

### 範例
<a name="integration-server-sdk-go-getcomputecertificate-example"></a>

```
tlsCertificate, err := server.GetFleetRoleCredentials(getFleetRoleCredentialsRequest)
```

## GetFleetRoleCredentials()
<a name="integration-server-sdk-go-getfleetrolecredentials"></a>

擷取您建立的服務角色登入資料，將許可擴展至其他 AWS 服務 Amazon GameLift Servers。這些登入資料可讓您的遊戲伺服器使用您的 AWS 資源。如需詳細資訊，請參閱[設定 的 IAM 服務角色 Amazon GameLift Servers](setting-up-role.md)。

### 語法
<a name="integration-server-sdk-go-getfleetrolecredentials-syntax"></a>

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

### Parameters
<a name="integration-server-sdk-go-getfleetrolecredentials-parameters"></a>

[GetFleetRoleCredentialsRequest](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-getfleetrolecredentialsrequest)  
角色登入資料，可將 AWS 資源的有限存取權延伸到遊戲伺服器。

### 傳回值
<a name="integration-server-sdk-go-getfleetrolecredentials-return"></a>

傳回包含下列項目的`GetFleetRoleCredentialsResult`物件：
+ AssumedRoleUserArn - 服務角色所屬使用者的 Amazon Resource Name (ARN)。
+ AssumedRoleId - 服務角色所屬的使用者 ID。
+ AccessKeyId - 用於驗證和提供 AWS 資源存取權的存取金鑰 ID。
+ SecretAccessKey - 用於身分驗證的私密存取金鑰 ID。
+ SessionToken - 用於識別目前作用中工作階段與 AWS 資源互動的權杖。
+ 過期 - 工作階段登入資料過期前的時間長度。

### 範例
<a name="integration-server-sdk-go-getfleetrolecredentials-example"></a>

```
// form the customer credentials request
getFleetRoleCredentialsRequest := request.NewGetFleetRoleCredentials()
getFleetRoleCredentialsRequest.RoleArn = "arn:aws:iam::123456789012:role/service-role/exampleGameLiftAction"

credentials, err := server.GetFleetRoleCredentials(getFleetRoleCredentialsRequest)
```

## Destroy()
<a name="integration-server-sdk-go-destroy"></a>

從記憶體釋放Amazon GameLift Servers遊戲伺服器 SDK。最佳實務是在終止程序之後`ProcessEnding()`和之前呼叫此方法。如果您使用的是 Anywhere 機群，而且沒有在每次遊戲工作階段後終止伺服器程序，請在通知程序已準備好使用 託管遊戲工作階段之前，先呼叫 Amazon GameLift Servers `Destroy()`，然後`InitSDK()`重新初始化 `ProcessReady()`。

### 語法
<a name="integration-server-sdk-go-destroy-syntax"></a>

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

### 傳回值
<a name="integration-server-sdk-go-destroy-return"></a>

如果方法失敗，則傳回包含錯誤訊息的錯誤。

### 範例
<a name="integration-server-sdk-go-destroy-example"></a>

```
// 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)
  }
}
```

# 適用於 -- 動作的 C\$1\$1 (Unreal) 伺服器 SDK Amazon GameLift Servers 5.x
<a name="integration-server-sdk5-unreal-actions"></a>

使用 Amazon GameLift Servers Unreal 伺服器 SDK 5.x 參考，協助您準備多玩家遊戲以搭配 使用。 Amazon GameLift Servers如需整合程序的詳細資訊，請參閱 [使用伺服器 SDK 將 Amazon GameLift Servers新增至您的遊戲伺服器](gamelift-sdk-server-api.md)。如果您使用的是 Unreal 的 Amazon GameLift Servers 外掛程式，另請參閱 [Amazon GameLift Servers Unreal Engine 的外掛程式](unreal-plugin.md)。

**注意**  
本主題說明您可以在為 Unreal Engine 建置時使用的 Amazon GameLift Servers C\$1\$1 API。具體而言，本文件適用於您使用 `-DBUILD_FOR_UNREAL=1`選項編譯的程式碼。

# 適用於 -- 資料類型的 C\$1\$1 (Unreal) 伺服器 SDK Amazon GameLift Servers 5.x
<a name="integration-server-sdk5-unreal-datatypes"></a>

使用 Amazon GameLift Servers Unreal 伺服器 SDK 5.x 參考，協助您準備多玩家遊戲以搭配 使用。 Amazon GameLift Servers如需整合程序的詳細資訊，請參閱 [使用伺服器 SDK 將 Amazon GameLift Servers新增至您的遊戲伺服器](gamelift-sdk-server-api.md)。如果您使用的是 Unreal 的 Amazon GameLift Servers 外掛程式，另請參閱 [Amazon GameLift Servers Unreal Engine 的外掛程式](unreal-plugin.md)。

**注意**  
本主題說明您可以在為 Unreal Engine 建置時使用的 Amazon GameLift Servers C\$1\$1 API。具體而言，本文件適用於您使用 `-DBUILD_FOR_UNREAL=1`選項編譯的程式碼。

[適用於 -- 動作的 C\$1\$1 (Unreal) 伺服器 SDK Amazon GameLift Servers 5.x](integration-server-sdk5-unreal-actions.md)

**Topics**
+ [FProcessParameters](#integration-server-sdk5-unreal-dataypes-process)
+ [UpdateGameSession](#integration-server-sdk5-unreal-dataypes-updategamesession)
+ [GameSession](#integration-server-sdk5-unreal-dataypes-gamesession)
+ [FServerParameters](#integration-server-sdk5-unreal-dataypes-serverparameters)
+ [FStartMatchBackfillRequest](#integration-server-sdk5-unreal-dataypes-startmatchbackfillrequest)
+ [FPlayer](#integration-server-sdk5-unreal-dataypes-player)
+ [FGameLiftDescribePlayerSessionsRequest](#integration-server-sdk5-unreal-dataypes-playersessions)
+ [FStopMatchBackfillRequest](#integration-server-sdk5-unreal-dataypes-stopmatchbackfillrequest)
+ [FAttributeValue](#integration-server-sdk5-unreal-dataypes-attributevalue)
+ [FGameLiftGetFleetRoleCredentialsRequest](#integration-server-sdk5-unreal-dataypes-getfleetrolecredentialsrequest)
+ [FGameLiftLongOutcome](#integration-server-sdk5-unreal-dataypes-awslongoutcome)
+ [FGameLiftStringOutcome](#integration-server-sdk5-unreal-dataypes-awsstringoutcome)
+ [FGameLiftDescribePlayerSessionsOutcome](#integration-server-sdk5-unreal-dataypes-describeplayersessionsoutcome)
+ [FGameLiftDescribePlayerSessionsResult](#integration-server-sdk5-unreal-dataypes-describeplayersessionresult)
+ [FGenericOutcome](#integration-server-sdk5-unreal-dataypes-genericoutcome)
+ [FGameLiftPlayerSession](#integration-server-sdk5-unreal-dataypes-playersession)
+ [FGameLiftGetComputeCertificateOutcome](#integration-server-sdk5-unreal-dataypes-getcomputecertificateoutcome)
+ [FGameLiftGetComputeCertificateResult](#integration-server-sdk5-unreal-dataypes-getcomputecertificateresult)
+ [FGameLiftGetFleetRoleCredentialsOutcome](#integration-server-sdk5-unreal-dataypes-getfleetrolecredentialsoutcome)
+ [FGetFleetRoleCredentialsResult](#integration-server-sdk5-unreal-dataypes-getfleetrolecredentialsresult)
+ [FGameLiftError](#integration-server-sdk5-unreal-dataypes-gamelifterror)
+ [列舉](#integration-server-sdk5-unreal-dataypes-enums)

## FProcessParameters
<a name="integration-server-sdk5-unreal-dataypes-process"></a>

此資料類型包含傳送至 Amazon GameLift Servers的一組參數[ProcessReady()](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-processready)。


|  |  | 
| --- |--- |
|  **屬性**  | Description | 
| LogParameters | 具有在遊戲工作階段期間產生之檔案目錄路徑的物件。 會Amazon GameLift Servers複製和存放檔案以供日後存取。**Type (類型)**：`TArray<FString>`**必要**：否 | 
| OnHealthCheck | Amazon GameLift Servers 呼叫 從伺服器程序請求運作狀態報告的回呼函數。 每 60 秒會Amazon GameLift Servers呼叫此函數，並等待 60 秒進行回應。FALSE 如果運作狀態TRUE良好，伺服器程序會傳回 。如果未傳回任何回應， 會將伺服器程序Amazon GameLift Servers記錄為運作狀態不佳。此屬性是定義為 的委派函數`DECLARE_DELEGATE_RetVal(bool, FOnHealthCheck)`；  **Type (類型)**：`FOnHealthCheck`**必要**：否 | 
| OnProcessTerminate | Amazon GameLift Servers 呼叫 以強制伺服器程序關閉的回呼函數。呼叫此函數後， 會Amazon GameLift Servers等待 5 分鐘讓伺服器程序關閉，並在關閉伺服器程序之前回應[ProcessEnding()](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-processending)呼叫。**Type (類型)**：`FSimpleDelegate`**必要**：是 | 
| OnStartGameSession | Amazon GameLift Servers 叫用以啟用新遊戲工作階段的回呼函數。 會Amazon GameLift Servers呼叫此函數以回應用戶端請求 [CreateGameSession](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_CreateGameSession.html)。回呼函數會傳遞[GameSession](#integration-server-sdk5-unreal-dataypes-gamesession)物件。此屬性是定義為 的委派函數 `DECLARE_DELEGATE_OneParam(FOnStartGameSession, Aws::GameLift::Server::Model::GameSession);`  **Type (類型)**：`FOnStartGameSession`**必要**：是 | 
| OnUpdateGameSession | Amazon GameLift Servers 呼叫 以將更新後的遊戲工作階段物件傳遞至伺服器程序的回呼函數。 會在處理配對回填請求時Amazon GameLift Servers呼叫此函數，以提供更新後的配對建構器資料。它會傳遞[GameSession](#integration-server-sdk5-unreal-dataypes-gamesession)物件、狀態更新 (updateReason) 和相符回填票證 ID。此屬性是定義為 的委派函數 `DECLARE_DELEGATE_OneParam(FOnUpdateGameSession, Aws::GameLift::Server::Model::UpdateGameSession);` **Type (類型)**：`FOnUpdateGameSession`**必要**：否 | 
| 站點 | 伺服器程序接聽新玩家連線的連接埠號碼。值必須屬於為部署此遊戲伺服器組建之機群所設定的連接埠範圍。此連接埠號碼包含在遊戲工作階段和遊戲工作階段物件中，遊戲工作階段會使用該物件來連接到伺服器程序。**Type (類型)**：`int`**必要**：是 | 

## UpdateGameSession
<a name="integration-server-sdk5-unreal-dataypes-updategamesession"></a>

此資料類型會更新至遊戲工作階段物件，其中包括遊戲工作階段已更新的原因，以及如果回填用於填入遊戲工作階段中的玩家工作階段，則相關的回填票證 ID。


| Properties | **Description** | 
| --- | --- | 
| GameSession | [GameSession](#integration-server-sdk5-unreal-dataypes-gamesession) 物件。GameSession 物件包含描述遊戲工作階段的屬性。**Type (類型)**：`Aws::GameLift::Server::GameSession`**必要**：否 | 
| UpdateReason | 正在更新遊戲工作階段的原因。**Type (類型)**：`enum class UpdateReason` [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/gameliftservers/latest/developerguide/integration-server-sdk5-unreal-datatypes.html) **必要**：否   | 
| BackfillTicketId | 嘗試更新遊戲工作階段的回填票證 ID。**Type (類型)**：`char[]`**必要**：否 | 

## GameSession
<a name="integration-server-sdk5-unreal-dataypes-gamesession"></a>

此資料類型提供遊戲工作階段的詳細資訊。


| Properties | **Description** | 
| --- | --- | 
| GameSessionId |  遊戲工作階段的唯一識別符。遊戲工作階段 ARN 的格式如下：`arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token>`。 **Type (類型)**：`char[]` **必要**：否  | 
| 名稱 |  遊戲工作階段的描述性標籤。 **Type (類型)**：`char[]` **必要**：否  | 
| FleetId |  遊戲工作階段執行所在的機群的唯一識別符。 **Type (類型)**：`char[]` **必要**：否  | 
| MaximumPlayerSessionCount |  遊戲工作階段的玩家連線數目上限。 **Type (類型)**：`int` **必要**：否  | 
| 站點 |  遊戲工作階段的連接埠號碼。若要連線到Amazon GameLift Servers遊戲伺服器，應用程式需要 IP 地址和連接埠號碼。 **Type (類型)**：`int` **必要**：否  | 
| IpAddress |  遊戲工作階段的 IP 地址。若要連線到Amazon GameLift Servers遊戲伺服器，應用程式需要 IP 地址和連接埠號碼。 **Type (類型)**：`char[]` **必要**：否  | 
| GameSessionData |  一組自訂遊戲工作階段屬性，格式為單一字串值。 **Type (類型)**：`char[]` **必要**：否  | 
| MatchmakerData |  用於建立遊戲工作階段的配對程序資訊，以 JSON 語法格式化為字串。除了使用的配對組態之外，還包含指派給配對的所有玩家的資料，包括玩家屬性和團隊指派。 **Type (類型)**：`char[]` **必要**：否  | 
| GameProperties |  一組遊戲工作階段的自訂屬性，格式為 key：value 對。這些屬性會與啟動新遊戲工作階段的請求一起傳遞。 **Type (類型)**：`GameProperty[]` **必要**：否  | 
| DnsName |  指派給執行遊戲工作階段之執行個體的 DNS 識別符。值的格式如下： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/gameliftservers/latest/developerguide/integration-server-sdk5-unreal-datatypes.html) 連線至在啟用 TLS 的機群上執行的遊戲工作階段時，您必須使用 DNS 名稱，而不是 IP 地址。 **Type (類型)**：`char[]` **必要**：否  | 

## FServerParameters
<a name="integration-server-sdk5-unreal-dataypes-serverparameters"></a>

用來維護 Amazon GameLift Servers Anywhere 伺服器與 Amazon GameLift Servers服務之間連線的資訊。使用 啟動新的伺服器程序時，會使用此資訊[InitSDK()](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-initsdk)。對於託管在Amazon GameLift Servers受管 EC2 執行個體上的伺服器，請使用空物件。


| Properties | **Description** | 
| --- | --- | 
| webSocketUrl |  當您[https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)使用 Amazon GameLift Servers Anywhere 運算資源時， 會`GameLiftServerSdkEndpoint`Amazon GameLift Servers傳回 。 **Type (類型)**：`char[]` **必要**：是   | 
| processId |  向託管遊戲的伺服器程序註冊的唯一識別符。 **Type (類型)**：`char[]` **必要**：是  | 
| hostId | HostID 是當您註冊運算ComputeName時使用的 。如需詳細資訊，請參閱 [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)。**Type (類型)**：`char[]`**必要**：是 | 
| fleetId | 運算註冊目的地機群的唯一識別符。如需詳細資訊，請參閱 [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)。**Type (類型)**：`char[]`**必要**：是 | 
| authToken | 產生的身分驗證字符Amazon GameLift Servers，用於向 驗證您的伺服器Amazon GameLift Servers。如需詳細資訊，請參閱 [GetComputeAuthToken](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GetComputeAuthToken.html)。**Type (類型)**：`char[]`**必要**：是 | 

## FStartMatchBackfillRequest
<a name="integration-server-sdk5-unreal-dataypes-startmatchbackfillrequest"></a>

用來建立配對回填請求的資訊。遊戲伺服器會在[StartMatchBackfill()](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-startmatchbackfill)通話Amazon GameLift Servers中將此資訊傳達給 。


| Properties | **Description** | 
| --- | --- | 
| GameSessionArn |  唯一的遊戲工作階段識別符。API 操作會以 ARN 格式`[GetGameSessionId](https://docs.aws.amazon.com/gameliftservers/latest/developerguide/integration-server-sdk5-unreal-actions.html#integration-server-sdk5-unreal-getgamesessionid)`傳回識別符。 **Type (類型)**：`char[]` **必要**：是  | 
| MatchmakingConfigurationArn |  配對建構器用於此請求的唯一識別符，格式為 ARN。原始遊戲工作階段的配對建構器 ARN 位於配對建構器資料屬性中的遊戲工作階段物件中。進一步了解使用配對建構器資料中的[配對建構器資料](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-server.html#match-server-data.html)。 **Type (類型)**：`char[]` **必要**：是  | 
| Players |  一組資料，代表遊戲工作階段中的所有玩家。配對建構器使用此項資訊搜尋適合配對現有玩家的新玩家。 **Type (類型)**：`TArray<FPlayer>` **必要**：是  | 
| TicketId |  配對或配對回填請求票證的唯一識別符。如果您不提供值， Amazon GameLift Servers會產生值。您可使用此識別項依據需求追蹤配對回填票證狀態或取消要求。 **Type (類型)**：`char[]` **必要**：否  | 

## FPlayer
<a name="integration-server-sdk5-unreal-dataypes-player"></a>

此資料類型代表配對中的玩家。啟動配對請求時，玩家會有玩家 ID、屬性和可能的延遲資料。 會在配對完成後Amazon GameLift Servers新增隊伍資訊。


| Properties | **Description** | 
| --- | --- | 
| LatencyInMS |  一組以毫秒為單位的值，指出玩家連線到某個位置時所經歷的延遲量。 如果使用此屬性，則玩家只會符合列出的位置。若配對構建器有評估玩家延遲的規則，玩家則必須回報延遲度，方可配對。 **Type (類型)**：`TMap>FString, int32<` **必要**：否  | 
| PlayerAttributes |  金鑰：值對的集合，其中包含用於配對的玩家資訊。玩家屬性金鑰必須符合配對規則集中使用的 PlayerAttributes。 如需玩家屬性的詳細資訊，請參閱 [AttributeValue](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_AttributeValue.html)。 **Type (類型)**：`TMap>FString, FAttributeValue<` **必要**：否  | 
| PlayerId |  玩家的唯一識別符。 **Type (類型)**：`std::string` **必要**：否  | 
| 團隊 |  玩家在配對中獲指派的隊伍名稱。您可以在配對規則集中定義團隊名稱。 **Type (類型)**：`FString` **必要**：否  | 

## FGameLiftDescribePlayerSessionsRequest
<a name="integration-server-sdk5-unreal-dataypes-playersessions"></a>

指定要擷取哪些玩家工作階段的物件。伺服器程序會在[DescribePlayerSessions()](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-describeplayersessions)呼叫 時提供此資訊Amazon GameLift Servers。


| Properties | **Description** | 
| --- | --- | 
| GameSessionId |  唯一的遊戲工作階段識別符。請使用此參數要求特定遊戲工作階段的所有玩家工作階段。 遊戲工作階段 ID 格式為 `FString`。`GameSessionID` 是自訂 ID 字串或 **Type (類型)**：`std::string` **必要**：否  | 
| PlayerSessionId |  玩家工作階段的唯一識別符。使用此參數請求單一特定玩家工作階段。 **Type (類型)**：`FString` **必要**：否  | 
| PlayerId |  玩家的唯一識別符。使用此參數來請求特定玩家的所有玩家工作階段。請參閱 [產生玩家 IDs](player-sessions-player-identifiers.md)。 **Type (類型)**：`FString` **必要**：否  | 
| PlayerSessionStatusFilter |  要篩選結果的玩家工作階段狀態。可能的玩家工作階段狀態包括： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/gameliftservers/latest/developerguide/integration-server-sdk5-unreal-datatypes.html) **Type (類型)**：`FString` **必要**：否  | 
| NextToken |  表示結果下一頁開始的字符。若要指定結果集的開頭，請不要提供值。如果您提供玩家工作階段 ID，則會忽略此參數。 **Type (類型)**：`FString` **必要**：否  | 
| 限制 |  回傳結果的數量上限。如果您提供玩家工作階段 ID，則會忽略此參數。 **Type (類型)**：`int` **必要**：否  | 

## FStopMatchBackfillRequest
<a name="integration-server-sdk5-unreal-dataypes-stopmatchbackfillrequest"></a>

用來取消配對回填請求的資訊。遊戲伺服器會在[StopMatchBackfill()](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-stopmatchbackfill)通話中將此資訊傳達給 Amazon GameLift Servers 服務。


| Properties | **Description** | 
| --- | --- | 
| GameSessionArn |  取消請求的唯一遊戲工作階段識別符。 **Type (類型)**：`FString` **必要**：是  | 
| MatchmakingConfigurationArn |  此請求傳送到的配對建構器的唯一識別符。 **Type (類型)**：`FString` **必要**：是  | 
| TicketId |  要取消之回填請求票證的唯一識別符。 **Type (類型)**：`FString` **必要**：是  | 

## FAttributeValue
<a name="integration-server-sdk5-unreal-dataypes-attributevalue"></a>

在[FPlayer](#integration-server-sdk5-unreal-dataypes-player)屬性鍵/值對中使用這些值。此物件可讓您使用任何有效的資料類型來指定屬性值：字串、數字、字串陣列或資料映射。每個`AttributeValue`物件只能使用其中一個可用的屬性。


| Properties | Description | 
| --- | --- | 
| attrType |  指定屬性值的類型。 **類型：**`FAttributeType`[列舉](#integration-server-sdk5-unreal-dataypes-enums)值。 **必要**：否  | 
| S |  代表字串屬性值。 **Type (類型)**：`FString` **必要**：否  | 
| N |  代表數值屬性值。 **Type (類型)**：`double` **必要**：否  | 
| SL |  代表字串屬性值的陣列。 **Type (類型)**：`TArray<FString>` **必要**：否  | 
| SDM |  代表字串索引鍵和雙值的字典。 **Type (類型)**：`TMap<FString, double>` **必要**：否  | 

## FGameLiftGetFleetRoleCredentialsRequest
<a name="integration-server-sdk5-unreal-dataypes-getfleetrolecredentialsrequest"></a>

此資料類型提供角色登入資料，可將 資源 AWS 的有限存取權延伸到遊戲伺服器。如需詳細資訊，請參閱 [設定 的 IAM 服務角色 Amazon GameLift Servers](setting-up-role.md)。


| Properties | **Description** | 
| --- | --- | 
| RoleArn | 服務角色的 Amazon Resource Name (ARN)，可延伸 AWS 資源的有限存取權。**Type (類型)**：`FString`**必要**：否 | 
| RoleSessionName | 描述使用角色登入資料的工作階段名稱。**Type (類型)**：`FString`**必要**：否 | 

## FGameLiftLongOutcome
<a name="integration-server-sdk5-unreal-dataypes-awslongoutcome"></a>

此資料類型來自 動作，並產生具有下列屬性的物件：


| Properties | Description | 
| --- | --- | 
| 結果 |  動作的結果。 **Type (類型)**：`long` **必要**：否  | 
| ResultWithOwnership |   動作的結果會轉換為 rvalue，以便呼叫程式碼可以取得物件的擁有權。 **Type (類型)**：`long&&` **必要**：否  | 
| 成功 |  動作是否成功。 **Type (類型)**：`bool` **必要**：是  | 
| 錯誤 |  動作失敗時發生的錯誤。 **Type (類型)**：[FGameLiftError](#integration-server-sdk5-unreal-dataypes-gamelifterror) **必要**：否  | 

## FGameLiftStringOutcome
<a name="integration-server-sdk5-unreal-dataypes-awsstringoutcome"></a>

此資料類型來自 動作，並產生具有下列屬性的物件：


| Properties | Description | 
| --- | --- | 
| 結果 |  動作的結果。 **Type (類型)**：`FString` **必要**：否  | 
| ResultWithOwnership |   動作的結果會轉換為 rvalue，以便呼叫程式碼可以取得物件的擁有權。 **Type (類型)**：`FString&&` **必要**：否  | 
| 成功 |  動作是否成功。 **Type (類型)**：`bool` **必要**：是  | 
| 錯誤 |  動作失敗時發生的錯誤。 **Type (類型)**：[FGameLiftError](#integration-server-sdk5-unreal-dataypes-gamelifterror) **必要**：否  | 

## FGameLiftDescribePlayerSessionsOutcome
<a name="integration-server-sdk5-unreal-dataypes-describeplayersessionsoutcome"></a>

此資料類型來自 動作，並產生具有下列屬性的物件：


| Properties | Description | 
| --- | --- | 
| 結果 |  動作的結果。 **Type (類型)**：[FGameLiftDescribePlayerSessionsResult](#integration-server-sdk5-unreal-dataypes-describeplayersessionresult) **必要**：否   | 
| ResultWithOwnership |   動作的結果會轉換為 rvalue，以便呼叫程式碼可以取得物件的擁有權。 **Type (類型)**：`FGameLiftDescribePlayerSessionsResult&&` **必要**：否  | 
| 成功 |  動作是否成功。 **Type (類型)**：`bool` **必要**：是  | 
| 錯誤 |  動作失敗時發生的錯誤。 **Type (類型)**：[FGameLiftError](#integration-server-sdk5-unreal-dataypes-gamelifterror) **必要**：否  | 

## FGameLiftDescribePlayerSessionsResult
<a name="integration-server-sdk5-unreal-dataypes-describeplayersessionresult"></a>


| Properties | Description | 
| --- | --- | 
| PlayerSessions |   **Type (類型)**：`TArray<FGameLiftPlayerSession>` **必要**：是  | 
| NextToken |  表示結果下一頁開始的字符。若要指定結果集的開頭，請不要提供值。如果您提供玩家工作階段 ID，則會忽略此參數。 **Type (類型)**：`FString` **必要**：否  | 
| 成功 |  動作是否成功。 **Type (類型)**：`bool` **必要**：是  | 
| 錯誤 |  動作失敗時發生的錯誤。 **Type (類型)**：[FGameLiftError](#integration-server-sdk5-unreal-dataypes-gamelifterror) **必要**：否  | 

## FGenericOutcome
<a name="integration-server-sdk5-unreal-dataypes-genericoutcome"></a>

此資料類型來自 動作，並產生具有下列屬性的物件：


| Properties | Description | 
| --- | --- | 
| 成功 |  動作是否成功。 **Type (類型)**：`bool` **必要**：是  | 
| 錯誤 |  動作失敗時發生的錯誤。 **Type (類型)**：[FGameLiftError](#integration-server-sdk5-unreal-dataypes-gamelifterror) **必要**：否  | 

## FGameLiftPlayerSession
<a name="integration-server-sdk5-unreal-dataypes-playersession"></a>


| Properties | Description | 
| --- | --- | 
| CreationTime |  **Type (類型)**：`long` **必要**：是  | 
| FleetId |  **Type (類型)**：`FString` **必要**：是  | 
| GameSessionId |  **Type (類型)**：`FString` **必要**：是  | 
| IpAddress |  **Type (類型)**：`FString` **必要**：是  | 
| PlayerData |  **Type (類型)**：`FString` **必要**：是  | 
| PlayerId |  **Type (類型)**：`FString` **必要**：是  | 
| PlayerSessionId |  **Type (類型)**：`FString` **必要**：是  | 
| 站點 |  **Type (類型)**：`int` **必要**：是  | 
| 狀態 |  **類型：**`PlayerSessionStatus`[列舉](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-enums)。 **必要**：是  | 
| TerminationTime |  **Type (類型)**：`long` **必要**：是  | 
| DnsName |  **Type (類型)**：`FString` **必要**：是  | 

## FGameLiftGetComputeCertificateOutcome
<a name="integration-server-sdk5-unreal-dataypes-getcomputecertificateoutcome"></a>

此資料類型來自 動作，並產生具有下列屬性的物件：


| Properties | Description | 
| --- | --- | 
| 結果 |  動作的結果。 **Type (類型)**：[FGameLiftGetComputeCertificateResult](#integration-server-sdk5-unreal-dataypes-getcomputecertificateresult) **必要**：否   | 
| ResultWithOwnership |   動作的結果會轉換為 rvalue，以便呼叫程式碼可以取得物件的擁有權。 **Type (類型)**：`FGameLiftGetComputeCertificateResult&&` **必要**：否  | 
| 成功 |  動作是否成功。 **Type (類型)**：`bool` **必要**：是  | 
| 錯誤 |  動作失敗時發生的錯誤。 **Type (類型)**：[FGameLiftError](#integration-server-sdk5-unreal-dataypes-gamelifterror) **必要**：否  | 

## FGameLiftGetComputeCertificateResult
<a name="integration-server-sdk5-unreal-dataypes-getcomputecertificateresult"></a>

運算上 TLS 憑證的路徑和運算的主機名稱。


| Properties | Description | 
| --- | --- | 
| CertificatePath |  **Type (類型)**：`FString` **必要**：是  | 
| ComputeName |  **Type (類型)**：`FString` **必要**：是  | 

## FGameLiftGetFleetRoleCredentialsOutcome
<a name="integration-server-sdk5-unreal-dataypes-getfleetrolecredentialsoutcome"></a>

此資料類型來自 動作，並產生具有下列屬性的物件：


| Properties | Description | 
| --- | --- | 
| 結果 |  動作的結果。 **Type (類型)**：[FGetFleetRoleCredentialsResult](#integration-server-sdk5-unreal-dataypes-getfleetrolecredentialsresult) **必要**：否   | 
| ResultWithOwnership |   動作的結果會轉換為 rvalue，以便呼叫程式碼可以取得物件的擁有權。 **Type (類型)**：`FGameLiftGetFleetRoleCredentialsResult&&` **必要**：否  | 
| 成功 |  動作是否成功。 **Type (類型)**：`bool` **必要**：是  | 
| 錯誤 |  動作失敗時發生的錯誤。 **Type (類型)**：[FGameLiftError](#integration-server-sdk5-unreal-dataypes-gamelifterror) **必要**：否  | 

## FGetFleetRoleCredentialsResult
<a name="integration-server-sdk5-unreal-dataypes-getfleetrolecredentialsresult"></a>


| Properties | Description | 
| --- | --- | 
| AccessKeyId |  要驗證並提供 AWS 資源存取權的存取金鑰 ID。 **Type (類型)**：`FString` **必要**：否  | 
| AssumedRoleId |  服務角色所屬的使用者 ID。 **Type (類型)**：`FString` **必要**：否  | 
| AssumedRoleUserArn |  服務角色所屬使用者的 Amazon Resource Name (ARN)。 **Type (類型)**：`FString` **必要**：否  | 
| Expiration |  工作階段登入資料過期前的時間長度。 **Type (類型)**：`FDateTime` **必要**：否  | 
| SecretAccessKey |  用於身分驗證的私密存取金鑰 ID。 **Type (類型)**：`FString` **必要**：否  | 
| SessionToken |  識別目前作用中工作階段與 AWS 資源互動的字符。 **Type (類型)**：`FString` **必要**：否  | 
| 成功 |  動作是否成功。 **Type (類型)**：`bool` **必要**：是  | 
| 錯誤 |  動作失敗時發生的錯誤。 **Type (類型)**：[GameLiftError](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-gamelifterror) **必要**：否  | 

## FGameLiftError
<a name="integration-server-sdk5-unreal-dataypes-gamelifterror"></a>


| Properties | Description | 
| --- | --- | 
| ErrorType |  錯誤類型。 **類型：**`GameLiftErrorType`[列舉](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-enums)。 **必要**：否   | 
| ErrorName |  錯誤的名稱。  **Type (類型)**：`std::string` **必要**：否   | 
| ErrorMessage |  錯誤訊息。  **Type (類型)**：`std::string` **必要**：否   | 

## 列舉
<a name="integration-server-sdk5-unreal-dataypes-enums"></a>

為適用於 Amazon GameLift Servers（非真實） 的伺服器 SDK 定義的列舉定義如下：

**FAttributeType**  
+ **NONE**
+ **STRING**
+ **雙倍**
+ **STRING\$1LIST**
+ **STRING\$1DOUBLE\$1MAP**

**GameLiftErrorType**  
指出錯誤類型的字串值。有效值包含：  
+ **SERVICE\$1CALL\$1FAILED** – 呼叫 AWS 服務失敗。
+ **LOCAL\$1CONNECTION\$1FAILED** – 與 的本機連線Amazon GameLift Servers失敗。
+ **NETWORK\$1NOT\$1INITIALIZED** – 網路尚未初始化。
+ **GAMESESSION\$1ID\$1NOT\$1SET** – 尚未設定遊戲工作階段 ID。
+ **BAD\$1REQUEST\$1EXCEPTION** 
+ **INTERNAL\$1SERVICE\$1EXCEPTION** 
+ **ALREADY\$1INITIALIZED** – Amazon GameLift Servers 伺服器或用戶端已使用 Initialize() 初始化。
+ **FLEET\$1MISMATCH** – 目標機群與 gameSession 或 playerSession 的機群不相符。
+ **GAMELIFT\$1CLIENT\$1NOT\$1INITIALIZED** – Amazon GameLift Servers用戶端尚未初始化。
+ **GAMELIFT\$1SERVER\$1NOT\$1INITIALIZED** – Amazon GameLift Servers 伺服器尚未初始化。
+ **GAME\$1SESSION\$1ENDED\$1FAILED** – 的 伺服器開發套件Amazon GameLift Servers無法聯絡 服務以報告遊戲工作階段已結束。
+ **GAME\$1SESSION\$1NOT\$1READY** – Amazon GameLift Servers 伺服器遊戲工作階段未啟用。
+ **GAME\$1SESSION\$1READY\$1FAILED** – 的伺服器 SDK Amazon GameLift Servers 無法聯絡 服務來報告遊戲工作階段已就緒。
+ **INITIALIZATION\$1MISMATCH** – 在 Server：：Initialize() 之後呼叫用戶端方法，反之亦然。
+ **NOT\$1INITIALIZED** – Amazon GameLift Servers 伺服器或用戶端尚未使用 Initialize() 初始化。
+ **NO\$1TARGET\$1ALIASID\$1SET** – 尚未設定目標aliasId。
+ **NO\$1TARGET\$1FLEET\$1SET** – 尚未設定目標機群。
+ **PROCESS\$1ENDING\$1FAILED** – 的伺服器 SDK Amazon GameLift Servers 無法聯絡 服務來報告程序即將結束。
+ **PROCESS\$1NOT\$1ACTIVE** – 伺服器程序尚未啟動、未繫結至 GameSession，且無法接受或處理 PlayerSessions。
+ **PROCESS\$1NOT\$1READY** – 伺服器程序尚未準備好啟用。
+ **PROCESS\$1READY\$1FAILED** – 的伺服器 SDK Amazon GameLift Servers 無法聯絡 服務以報告程序已就緒。
+ **SDK\$1VERSION\$1DETECTION\$1FAILED** – SDK 版本偵測失敗。
+ **STX\$1CALL\$1FAILED** – 呼叫 XStx 伺服器後端元件失敗。
+ **STX\$1INITIALIZATION\$1FAILED** – XStx 伺服器後端元件無法初始化。
+ **UNEXPECTED\$1PLAYER\$1SESSION** – 伺服器遇到未註冊的玩家工作階段。
+ **WEBSOCKET\$1CONNECT\$1FAILURE** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1FORBIDDEN** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1INVALID\$1URL** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1TIMEOUT** 
+ **WEBSOCKET\$1RETRIABLE\$1SEND\$1MESSAGE\$1FAILURE** – 將訊息傳送至 GameLift Service WebSocket 的可重試失敗。
+ **WEBSOCKET\$1SEND\$1MESSAGE\$1FAILURE** – 無法傳送訊息至 GameLift Service WebSocket。
+ **MATCH\$1BACKFILL\$1REQUEST\$1VALIDATION** – 驗證請求失敗。
+ **PLAYER\$1SESSION\$1REQUEST\$1VALIDATION** – 驗證請求失敗。

**EPlayerSessionCreationPolicy**  
字串值代表遊戲工作階段是否可接受新玩家。有效值包含：  
+ **ACCEPT\$1ALL** – 接受所有新玩家工作階段。
+ **DENY\$1ALL** – 拒絕所有新玩家工作階段。
+ **NOT\$1SET** – 遊戲工作階段未設定為接受或拒絕新的玩家工作階段。

**EPlayerSessionStatus**  
+ **ACTIVE**
+ **COMPLETED (已完成)**
+ **NOT\$1SET**
+ **RESERVED**
+ **逾時**

[適用於 -- 資料類型的 C\$1\$1 (Unreal) 伺服器 SDK Amazon GameLift Servers 5.x](integration-server-sdk5-unreal-datatypes.md)

**Topics**
+ [適用於 -- 資料類型的 C\$1\$1 (Unreal) 伺服器 SDK Amazon GameLift Servers 5.x](integration-server-sdk5-unreal-datatypes.md)
+ [GetSdkVersion()](#integration-server-sdk5-unreal-getsdkversion)
+ [InitSDK()](#integration-server-sdk5-unreal-initsdk)
+ [InitSDK()](#integration-server-sdk5-unreal-initsdk-anywhere)
+ [ProcessReady()](#integration-server-sdk5-unreal-processready)
+ [ProcessEnding()](#integration-server-sdk5-unreal-processending)
+ [ActivateGameSession()](#integration-server-sdk5-unreal-activategamesession)
+ [UpdatePlayerSessionCreationPolicy()](#integration-server-sdk5-unreal-updateplayersessioncreationpolicy)
+ [GetGameSessionId()](#integration-server-sdk5-unreal-getgamesessionid)
+ [GetTerminationTime()](#integration-server-sdk5-unreal-getterm)
+ [AcceptPlayerSession()](#integration-server-sdk5-unreal-acceptplayersession)
+ [RemovePlayerSession()](#integration-server-sdk5-unreal-removeplayersession)
+ [DescribePlayerSessions()](#integration-server-sdk5-unreal-describeplayersessions)
+ [StartMatchBackfill()](#integration-server-sdk5-unreal-startmatchbackfill)
+ [StopMatchBackfill()](#integration-server-sdk5-unreal-stopmatchbackfill)
+ [GetComputeCertificate()](#integration-server-sdk5-unreal-getcomputecertificate)
+ [GetFleetRoleCredentials()](#integration-server-sdk5-unreal-getfleetrolecredentials)
+ [Destroy()](#integration-server-sdk5-unreal-ref-destroy)

## GetSdkVersion()
<a name="integration-server-sdk5-unreal-getsdkversion"></a>

傳回內建至伺服器程序的目前開發套件版本編號。

### 語法
<a name="integration-server-sdk5-unreal-getsdkversion-syntax"></a>

```
FGameLiftStringOutcome GetSdkVersion();
```

### 傳回值
<a name="integration-server-sdk5-unreal-getsdkversion-return"></a>

如果成功，將目前開發套件版本以 [FGameLiftStringOutcome](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-awsstringoutcome) 物件傳回。傳回的物件包含版本編號 （範例 `5.0.0`)。如果不成功，則會傳回錯誤訊息。

### 範例
<a name="integration-server-sdk5-unreal-getsdkversion-example"></a>

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

## InitSDK()
<a name="integration-server-sdk5-unreal-initsdk"></a>

初始化受管 EC2 機群的 Amazon GameLift Servers SDK。在與 相關的任何其他初始化Amazon GameLift Servers發生之前，請在啟動時呼叫此方法。此方法會從主機環境讀取伺服器參數，以設定伺服器與服務之間的通訊Amazon GameLift Servers。它使用等冪符記，因此您可以在失敗時安全地重試此呼叫。

### 語法
<a name="integration-server-sdk5-unreal-initsdk-syntax"></a>

```
FGameLiftGenericOutcome InitSDK()
```

### 傳回值
<a name="integration-server-sdk5-unreal-initsdk-return"></a>

如果成功， 會傳回 `InitSdkOutcome` 物件，指出伺服器程序已準備好呼叫 [ProcessReady()](#integration-server-sdk5-unreal-processready)。

### 範例
<a name="integration-server-sdk5-unreal-initsdk-example"></a>

```
//Call InitSDK to establish a local connection with the Amazon GameLift Servers Agent to enable further communication.
FGameLiftGenericOutcome initSdkOutcome = GameLiftSdkModule->InitSDK();
```

## InitSDK()
<a name="integration-server-sdk5-unreal-initsdk-anywhere"></a>

初始化 Anywhere 機群或受管容器機群的 Amazon GameLift Servers SDK。在與 相關的任何其他初始化Amazon GameLift Servers發生之前，請在啟動時呼叫此方法。此方法需要明確的伺服器參數，才能設定伺服器和服務之間的通訊Amazon GameLift Servers。它使用等冪符記，因此您可以在失敗時安全地重試此呼叫。

### 語法
<a name="integration-server-sdk5-unreal-initsdk-anywhere-syntax"></a>

```
FGameLiftGenericOutcome InitSDK(serverParameters)
```

### Parameters
<a name="integration-server-sdk5-unreal-initsdk-anywhere-parameter"></a>

[FServerParameters](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-serverparameters)  
若要在 Amazon GameLift Servers Anywhere 機群上初始化遊戲伺服器，請使用下列資訊建構`ServerParameters`物件：  
+ 用來連線至遊戲伺服器的 WebSocket URL。
+ 用於託管遊戲伺服器的程序 ID。
+ 託管遊戲伺服器程序的運算 ID。
+ 包含 Amazon GameLift Servers Anywhere 運算的Amazon GameLift Servers機群 ID。
+ Amazon GameLift Servers 操作產生的授權字符。

### 傳回值
<a name="integration-server-sdk5-unreal-initsdk-anywhere-return"></a>

如果成功， 會傳回 `InitSdkOutcome` 物件，指出伺服器程序已準備好呼叫 [ProcessReady()](#integration-server-sdk5-unreal-processready)。

**注意**  
如果針對部署到 Anywhere 機群的遊戲組建呼叫`InitSDK()`失敗，請檢查建立組建資源時使用的`ServerSdkVersion`參數。您必須將此值明確設定為正在使用的伺服器 SDK 版本。此參數的預設值為 4.x，不相容。若要解決此問題，請建立新的組建，並將其部署到新的機群。

### 範例
<a name="integration-server-sdk5-unreal-initsdk-anywhere-example"></a>

```
//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()
<a name="integration-server-sdk5-unreal-processready"></a>

Amazon GameLift Servers 通知伺服器程序已準備好託管遊戲工作階段。叫用 後呼叫此方法[InitSDK()](#integration-server-sdk5-unreal-initsdk)。每個程序只能呼叫此方法一次。

### 語法
<a name="integration-server-sdk5-unreal-processready-syntax"></a>

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

### Parameters
<a name="integration-server-sdk5-unreal-processready-parameter"></a>

**processParameters**  
傳達下列伺服器程序相關資訊的[FProcessParameters](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-process)物件：  
+ 在遊戲伺服器程式碼中實作的回呼方法名稱，Amazon GameLift Servers服務會叫用它來與伺服器程序通訊。
+ 伺服器程序正在接聽的埠號。
+ 任何要 Amazon GameLift Servers 擷取並存放的遊戲工作階段特定檔案路徑。

### 傳回值
<a name="integration-server-sdk5-unreal-processready-return"></a>

傳回一般結果，其中包含成功或失敗以及錯誤訊息。

### 範例
<a name="integration-server-sdk5-unreal-processready-example"></a>

此範例會說明 [ProcessReady()](#integration-server-sdk5-unreal-processready) 呼叫和委派函數的實作。

```
//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()
<a name="integration-server-sdk5-unreal-processending"></a>

Amazon GameLift Servers 通知伺服器程序正在終止。在所有其他清除任務 （包括關閉作用中的遊戲工作階段） 之後，以及在終止程序之前，呼叫此方法。根據 的結果`ProcessEnding()`，程序會以成功 (0) 或錯誤 (-1) 結束並產生機群事件。如果程序因錯誤而終止，產生的機群事件為 `SERVER_PROCESS_TERMINATED_UNHEALTHY`)。

### 語法
<a name="integration-server-sdk5-unreal-processending-syntax"></a>

```
FGameLiftGenericOutcome ProcessEnding()
```

### 傳回值
<a name="integration-server-sdk5-unreal-processending-return"></a>

傳回一般結果，其中包含成功或失敗以及錯誤訊息。

### 範例
<a name="integration-server-sdk5-unreal-processending-example"></a>

```
//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()
<a name="integration-server-sdk5-unreal-activategamesession"></a>

Amazon GameLift Servers 通知伺服器程序已啟用遊戲工作階段，現在已準備好接收玩家連線。在所有遊戲工作階段初始化之後，應該呼叫此動作做為回`onStartGameSession()`呼函數的一部分。

### 語法
<a name="integration-server-sdk5-unreal-activategamesession-syntax"></a>

```
FGameLiftGenericOutcome ActivateGameSession()
```

### 傳回值
<a name="integration-server-sdk5-unreal-activategamesession-return"></a>

傳回一般結果，其中包含成功或失敗以及錯誤訊息。

### 範例
<a name="integration-server-sdk5-unreal-activategamesession-example"></a>

此範例顯示`ActivateGameSession()`稱為`onStartGameSession()`委派函數的一部分。

```
//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()
<a name="integration-server-sdk5-unreal-updateplayersessioncreationpolicy"></a>

更新目前遊戲工作階段的能力，以接受新的玩家工作階段。遊戲工作階段可設定為接受或拒絕所有新的玩家工作階段。

### 語法
<a name="integration-server-sdk5-unreal-updateplayersessioncreationpolicy-syntax"></a>

```
FGameLiftGenericOutcome UpdatePlayerSessionCreationPolicy(EPlayerSessionCreationPolicy policy)
```

### Parameters
<a name="integration-server-sdk5-unreal-updateplayersessioncreationpolicy-parameter"></a>

**playerCreationSessionPolicy**  
字串值代表遊戲工作階段是否可接受新玩家。  
有效值包含：  
+ **ACCEPT\$1ALL** – 接受所有新玩家工作階段。
+ **DENY\$1ALL** – 拒絕所有新玩家工作階段。

### 傳回值
<a name="integration-server-sdk5-unreal-updateplayersessioncreationpolicy-return"></a>

傳回一般結果，其中包含成功或失敗以及錯誤訊息。

### 範例
<a name="integration-server-sdk5-unreal-updateplayersessioncreationpolicy-example"></a>

此範例設定目前遊戲工作階段的加入政策為可接受所有玩家。

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

## GetGameSessionId()
<a name="integration-server-sdk5-unreal-getgamesessionid"></a>

擷取作用中伺服器程序託管的遊戲工作階段 ID。

對於未使用遊戲工作階段啟用的閒置程序，呼叫會傳回 [FGameLiftError](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-gamelifterror)。

### 語法
<a name="integration-server-sdk5-unreal-getgamesessionid-syntax"></a>

```
FGameLiftStringOutcome GetGameSessionId()
```

### Parameters
<a name="integration-server-sdk5-unreal-getgamesessionid-parameter"></a>

此動作沒有參數。

### 傳回值
<a name="integration-server-sdk5-unreal-getgamesessionid-return"></a>

如果成功，則會把遊戲工作階段 ID 當成 [FGameLiftStringOutcome](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-awsstringoutcome) 物件傳回。如果不成功， 會傳回錯誤訊息。」

對於未使用遊戲工作階段啟用的閒置程序，呼叫會傳回 `Success`=`True` 和 `GameSessionId`=`""`。

### 範例
<a name="integration-server-sdk5-unreal-getgamesessionid-example"></a>

```
//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()
<a name="integration-server-sdk5-unreal-getterm"></a>

若設有終止時間，即傳回伺服器程序排定關閉的時間。伺服器程序在收到來自 的回`onProcessTerminate()`呼後會採取動作Amazon GameLift Servers。 Amazon GameLift Servers會`onProcessTerminate()`呼叫 ，原因如下：
+ 當伺服器程序回報運作狀態不佳或未回應 時Amazon GameLift Servers。
+ 在縮減規模事件期間終止執行個體時。
+ 當執行個體因 [spot-instance 中斷](spot-tasks.md)而終止時。

### 語法
<a name="integration-server-sdk5-unreal-getterm-syntax"></a>

```
AwsDateTimeOutcome GetTerminationTime()
```

### 傳回值
<a name="integration-server-sdk5-unreal-getterm-return"></a>

如果成功， 會將終止時間傳回為 `AwsDateTimeOutcome` 物件。值是終止時間，以自 以來經過的刻度表示`0001 00:00:00`。例如，日期時間值`2020-09-13 12:26:40 -000Z`等於`637355968000000000`刻度。如果沒有可用的終止時間， 會傳回錯誤訊息。

如果程序尚未收到` ProcessParameters.OnProcessTerminate()`回呼，則會傳回錯誤訊息。如需關閉伺服器程序的詳細資訊，請參閱 [回應伺服器程序關閉通知](gamelift-sdk-server-api.md#gamelift-sdk-server-terminate)。

### 範例
<a name="integration-server-sdk5-unreal-getterm-example"></a>

```
AwsDateTimeOutcome TermTimeOutcome = GameLiftSdkModule->GetTerminationTime();
```

## AcceptPlayerSession()
<a name="integration-server-sdk5-unreal-acceptplayersession"></a>

Amazon GameLift Servers 通知具有指定玩家工作階段 ID 的玩家已連線至伺服器程序，且需要驗證。 Amazon GameLift Servers 會驗證玩家工作階段 ID 是否有效。驗證玩家工作階段後， 會將玩家位置Amazon GameLift Servers的狀態從 RESERVED 變更為 ACTIVE。

### 語法
<a name="integration-server-sdk5-unreal-acceptplayersession-syntax"></a>

```
FGameLiftGenericOutcome AcceptPlayerSession(const FString& playerSessionId)
```

### Parameters
<a name="integration-server-sdk5-unreal-acceptplayersession-parameter"></a>

playerSessionId  
建立新玩家工作階段Amazon GameLift Servers時由 發出的唯一 ID。

### 傳回值
<a name="integration-server-sdk5-unreal-acceptplayersession-return"></a>

傳回一般結果，其中包含成功或失敗以及錯誤訊息。

### 範例
<a name="integration-server-sdk5-unreal-acceptplayersession-example"></a>

此範例會處理連線請求，其中包含驗證和拒絕非有效的玩家工作階段 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()
<a name="integration-server-sdk5-unreal-removeplayersession"></a>

Amazon GameLift Servers 通知玩家已中斷與伺服器程序的連線。作為回應， Amazon GameLift Servers 會將玩家位置變更為可用。

### 語法
<a name="integration-server-sdk5-unreal-removeplayersession-syntax"></a>

```
FGameLiftGenericOutcome RemovePlayerSession(const FString& playerSessionId)
```

### Parameters
<a name="integration-server-sdk5-unreal-removeplayersession-parameter"></a>

**`playerSessionId`**  
建立新玩家工作階段Amazon GameLift Servers時由 發出的唯一 ID。

### 傳回值
<a name="integration-server-sdk5-unreal-removeplayersession-return"></a>

傳回一般結果，其中包含成功或失敗以及錯誤訊息。

### 範例
<a name="integration-server-sdk5-unreal-removeplayersession-example"></a>

```
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()
<a name="integration-server-sdk5-unreal-describeplayersessions"></a>

擷取玩家工作階段資料，其中包括設定、工作階段中繼資料和玩家資料。使用此方法取得下列相關資訊：
+ 單一玩家工作階段
+ 遊戲工作階段中的所有玩家工作階段
+ 與單一玩家 ID 相關聯的所有玩家工作階段

### 語法
<a name="integration-server-sdk5-unreal-describeplayersessions-syntax"></a>

```
FGameLiftDescribePlayerSessionsOutcome DescribePlayerSessions(const FGameLiftDescribePlayerSessionsRequest &describePlayerSessionsRequest)
```

### Parameters
<a name="integration-server-sdk5-unreal-describeplayersessions-parameter"></a>

**[FGameLiftDescribePlayerSessionsRequest](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-playersessions)**  
描述要擷取哪些玩家工作階段的[FGameLiftDescribePlayerSessionsRequest](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-playersessions)物件。

### 傳回值
<a name="integration-server-sdk5-unreal-describeplayersessions-return"></a>

如果成功，會傳回 [FGameLiftDescribePlayerSessionsOutcome](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-describeplayersessionsoutcome) 物件，內含一組與請求參數相符的玩家工作階段物件。

### 範例
<a name="integration-server-sdk5-unreal-describeplayersessions-example"></a>

此範例會請求主動連線到指定遊戲工作階段的所有玩家工作階段。透過省略 *NextToken* 並將*限制*值設定為 10， 會Amazon GameLift Servers傳回符合請求的前 10 個玩家工作階段記錄。

```
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()
<a name="integration-server-sdk5-unreal-startmatchbackfill"></a>

此動作會傳送請求，以便替 FlexMatch 所建立的遊戲工作階段​開放空位找到新玩家。如需詳細資訊，請參閱[FlexMatch回填功能](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html)。

此為非同步動作。如果新玩家相符， 會使用回呼函數 Amazon GameLift Servers交付更新的配對建構器資料`OnUpdateGameSession()`。

一個伺服器程序一次僅能有一個使用中的配對回填請求。若要發送新請求，請先呼叫 [StopMatchBackfill()](#integration-server-sdk5-unreal-stopmatchbackfill) 取消原始請求。

### 語法
<a name="integration-server-sdk5-unreal-startmatchbackfill-syntax"></a>

```
FGameLiftStringOutcome StartMatchBackfill (FStartMatchBackfillRequest &startBackfillRequest);
```

### Parameters
<a name="integration-server-sdk5-unreal-startmatchbackfill-parameter"></a>

**[FStartMatchBackfillRequest](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-startmatchbackfillrequest)**  
StartMatchBackfillRequest 物件，可傳達下列資訊：  
+ 指派給回填請求的票證 ID。此資訊是選用的；如果未提供 ID， Amazon GameLift Servers將產生一個 ID。
+ 傳送請求對象的配對建構器。必須填入完整的組態 ARN。此值位於遊戲工作階段的配對建構器資料中。
+ 要回填的遊戲工作階段 ID。
+ 遊戲工作階段目前玩家的可用配對資料。

### 傳回值
<a name="integration-server-sdk5-unreal-startmatchbackfill-return"></a>

傳回具有相符回填票證 ID 或失敗並顯示錯誤訊息的`StartMatchBackfillOutcome`物件。

### 範例
<a name="integration-server-sdk5-unreal-startmatchbackfill-example"></a>

```
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()
<a name="integration-server-sdk5-unreal-stopmatchbackfill"></a>

取消作用中的配對回填請求。如需詳細資訊，請參閱[FlexMatch回填功能](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html)。

### 語法
<a name="integration-server-sdk5-unreal-stopmatchbackfill-syntax"></a>

```
FGameLiftGenericOutcome StopMatchBackfill (FStopMatchBackfillRequest &stopBackfillRequest);
```

### Parameters
<a name="integration-server-sdk5-unreal-stopmatchbackfill-parameter"></a>

**[FStopMatchBackfillRequest](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-stopmatchbackfillrequest)**  
識別要取消之配對票證的 StopMatchBackfillRequest 物件：  
+ 指派給回填請求的票證 ID。
+ 回填請求傳送到的配對建構器。
+ 與回填請求相關聯的遊戲工作階段。

### 傳回值
<a name="integration-server-sdk5-unreal-stopmatchbackfill-return"></a>

傳回一般結果，其中包含成功或失敗以及錯誤訊息。

### 範例
<a name="integration-server-sdk5-unreal-stopmatchbackfill-example"></a>

```
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()
<a name="integration-server-sdk5-unreal-getcomputecertificate"></a>

擷取用於加密 Amazon GameLift Servers Anywhere 運算資源與 之間網路連線的 TLS 憑證路徑Amazon GameLift Servers。您可以在向 Amazon GameLift Servers Anywhere 機群註冊運算裝置時使用憑證路徑。如需詳細資訊，請參閱 [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)。

### 語法
<a name="integration-server-sdk5-unreal-getcomputecertificate-syntax"></a>

```
FGameLiftGetComputeCertificateOutcome FGameLiftServerSDKModule::GetComputeCertificate()
```

### 傳回值
<a name="integration-server-sdk5-unreal-getcomputecertificate-return"></a>

傳回包含下列項目的`GetComputeCertificateResponse`物件：
+ CertificatePath：運算資源上 TLS 憑證的路徑。
+ HostName：運算資源的主機名稱。

### 範例
<a name="integration-server-sdk5-unreal-getcomputecertificate-example"></a>

```
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()
<a name="integration-server-sdk5-unreal-getfleetrolecredentials"></a>

擷取授權 與其他 互動的 IAM 角色登入Amazon GameLift Servers資料 AWS 服務。如需詳細資訊，請參閱[將Amazon GameLift Servers託管遊戲伺服器連接到其他 AWS 資源](gamelift-sdk-server-resources.md)。

### 語法
<a name="integration-server-sdk5-unreal-getfleetrolecredentials-syntax"></a>

```
FGameLiftGetFleetRoleCredentialsOutcome FGameLiftServerSDKModule::GetFleetRoleCredentials(const FGameLiftGetFleetRoleCredentialsRequest &request)
```

### Parameters
<a name="integration-server-sdk5-unreal-getfleetrolecredentials-parameters"></a>

[FGameLiftGetFleetRoleCredentialsRequest](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-getfleetrolecredentialsrequest)

### 傳回值
<a name="integration-server-sdk5-unreal-getfleetrolecredentials-return"></a>

其會傳回 [FGameLiftGetFleetRoleCredentialsOutcome](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-getfleetrolecredentialsoutcome) 物件。

### 範例
<a name="integration-server-sdk5-unreal-getfleetrolecredentials-example"></a>

```
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
}
```

## Destroy()
<a name="integration-server-sdk5-unreal-ref-destroy"></a>

從記憶體釋放Amazon GameLift Servers遊戲伺服器 SDK。最佳實務是在終止程序之後`ProcessEnding()`和之前呼叫此方法。如果您使用的是 Anywhere 機群，而且沒有在每次遊戲工作階段後終止伺服器程序，請在通知程序已準備好使用 託管遊戲工作階段之前，先呼叫 Amazon GameLift Servers `Destroy()`，然後`InitSDK()`重新初始化 `ProcessReady()`。

### 語法
<a name="integration-server-sdk5-unreal-ref-destroy-syntax"></a>

```
FGameLiftGenericOutcome Destroy();
```

### Parameters
<a name="integration-server-sdk5-unreal-ref-destroy-parameter"></a>

沒有參數。

### 傳回值
<a name="integration-server-sdk5-unreal-ref-destroy-return"></a>

傳回一般結果，其中包含成功或失敗以及錯誤訊息。

### 範例
<a name="integration-server-sdk5-unreal-ref-destroy-example"></a>

```
// First call ProcessEnding()
FGameLiftGenericOutcome processEndingOutcome = GameLiftSdkModule->ProcessEnding();
  
// Then call Destroy() to free the SDK from memory
FGameLiftGenericOutcome destroyOutcome = GameLiftSdkModule->Destroy();
  
// Exit the process with success or failure
if (processEndingOutcome.IsSuccess() && destroyOutcome.IsSuccess()) 
    {
    UE_LOG(GameServerLog, Log, TEXT("Server process ending successfully"));
}
else {
    if (!processEndingOutcome.IsSuccess()) {
        const FGameLiftError& error = processEndingOutcome.GetError();
        UE_LOG(GameServerLog, Error, TEXT("ProcessEnding() failed. Error: %s"),
        error.m_errorMessage.IsEmpty() ? TEXT("Unknown error") : *error.m_errorMessage);
    }
    if (!destroyOutcome.IsSuccess()) {
        const FGameLiftError& error = destroyOutcome.GetError();
        UE_LOG(GameServerLog, Error, TEXT("Destroy() failed. Error: %s"),
        error.m_errorMessage.IsEmpty() ? TEXT("Unknown error") : *error.m_errorMessage);
    }
}
```