

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

# 適用於 -- 動作的 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); 
  }
```