使用 Amazon GameLift Streams 啟動串流工作階段 - Amazon GameLift 串流

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

使用 Amazon GameLift Streams 啟動串流工作階段

本節涵蓋串流工作階段,也就是最終使用者或玩家可以與您的應用程式互動或玩遊戲的串流實際執行個體。您將了解如何測試自己的串流工作階段,並了解串流工作階段生命週期。

若要對最終使用者啟動串流工作階段,您必須將 Amazon GameLift Streams 整合到您自己的服務中。如需詳細資訊,請參閱 Amazon GameLift Streams 後端服務和 Web 用戶端

關於串流工作階段

啟動串流工作階段的先決條件是應用程式和具有可用作用中容量的串流群組。串流工作階段會在串流群組配置的其中一個運算資源或串流容量上執行。啟動串流時,您必須指定串流群組和應用程式,才能使用其 ARN 或 ID 值進行串流。

當您成功啟動串流工作階段時,您會收到該串流工作階段的唯一識別符。然後,您可以使用該 ID 將串流工作階段連線至最終使用者。如需詳細資訊,請參閱《Amazon GameLift Streams API 參考》中的 StartStreamSession

在主控台中測試串流

您透過 Amazon GameLift Streams 主控台測試應用程式串流方式的最直接方式。當您啟動串流時,Amazon GameLift Streams 會使用串流群組配置的其中一個運算資源。因此,您的串流群組中必須有可用的容量。

在 Amazon GameLift Streams 主控台中測試串流
  1. 登入 AWS Management Console 並開啟 Amazon GameLift Streams 主控台

  2. 您可以透過多種方式測試串流。從串流群組頁面或測試串流頁面開始,並遵循下列步驟:

    1. 選取您要用來串流的串流群組。

    2. 如果您是從串流群組頁面開始,請選擇測試串流。如果您是從測試串流頁面開始,請選取選擇。這會開啟所選串流群組的測試串流組態頁面。

    3. 連結應用程式中,選取應用程式。

    4. 位置中,選擇具有可用容量的位置。

    5. (選用) 在程式組態中,輸入命令列引數或環境變數,以在應用程式啟動時傳遞給應用程式。

    6. 確認您的選擇,然後選擇測試串流

  3. 串流載入之後,您可以在串流中執行下列動作:

    1. 若要連接輸入,例如滑鼠、鍵盤和遊戲台 (測試串流不支援的麥克風除外),請選擇連接輸入。當您將游標移至串流視窗時,會自動連接滑鼠。

    2. 若要讓在串流工作階段期間建立的檔案在工作階段結束時匯出至 Amazon S3 儲存貯體,請選擇匯出檔案並指定儲存貯體詳細資訊。匯出的檔案可在工作階段頁面上找到。

    3. 若要以全螢幕檢視串流,請選擇全螢幕。按下出以反轉此動作。

  4. 若要結束串流,請選擇終止工作階段。當串流中斷連線時,串流容量會變成可用於啟動另一個串流。

注意

Amazon GameLift Streams 主控台中的測試串流功能不支援麥克風。

串流工作階段生命週期

在 Amazon GameLift Streams 中使用串流工作階段時,此圖表可協助您了解串流工作階段在整個生命週期中轉換到的不同狀態。

  • StartStreamSession 會建立新的串流工作階段,以 ACTIVATING 狀態開始。當 Amazon GameLift Streams 尋找可用資源來託管串流時,串流工作階段會轉換為 ACTIVE。當用戶端連線至作用中串流時,串流工作階段會轉換為 CONNECTED

  • 當用戶端與串流中斷連線時,串流工作階段會轉換為 PENDING_CLIENT_RECONNECTION 狀態。CreateStreamSessionConnection 會將串流工作階段轉換為 RECONNECTING,並將啟動用戶端以重新連線至串流或建立新的串流工作階段。當串流工作階段準備好供用戶端重新連線時,它會轉換為 ACTIVE。當用戶端重新連線時,它會轉換回 CONNECTED。如果用戶端中斷連線的時間超過 ConnectionTimeoutSeconds,則串流工作階段會結束。

  • 當用戶端未在 指定的時間內連線至處於 ACTIVEPENDING_CLIENT_RECONNECTION 狀態的串流工作階段時ConnectionTimeoutSeconds,則會轉換為 TERMINATED

  • TerminateStreamSession 會啟動串流的終止,而串流工作階段會轉換為 TERMINATING 狀態。當串流工作階段成功終止時,它會轉換為 TERMINATED

  • 除了 之外,處於任何狀態的串流工作階段TERMINATED都可以轉換為 ERROR。當 API 呼叫傳回 ERROR 狀態值時,請檢查 StatusReason 的值,以取得錯誤原因的簡短描述。您也可以呼叫 GetStreamSession 來檢查這些值。

此圖表顯示串流工作階段在整個生命週期中轉換為 的不同狀態。

影響串流工作階段的逾時值

串流工作階段由數個逾時值管理,這些值控制工作階段生命週期的不同層面。按照您通常在串流工作階段生命週期期間遇到它們的大致時間順序,它們包括下列項目:

放置逾時

Amazon GameLift Streams 尋找運算資源以使用可用容量託管串流工作階段的時間限制。配置逾時會根據用於履行串流請求的容量類型而有所不同:

  • 永遠開啟容量:75 秒

  • 隨需容量:

    • Linux/Proton 執行時間:90 秒

    • Windows 執行時間:10 分鐘

  • 行為:如果 Amazon GameLift Streams 無法在此期間內識別可用資源,則串流工作階段會使用 ERROR StatusReasonStatus變更為 placementTimeout

連線逾時

Amazon GameLift Streams 等待用戶端連線或重新連線至串流工作階段的時間長度。

  • 參數:在 StartStreamSession ConnectionTimeoutSeconds

  • 範圍:1 - 3600 秒 (1 小時)

  • 預設:120 秒 (2 分鐘)

  • 行為:計時器會在串流工作階段達到 ACTIVEPENDING_CLIENT_RECONNECTION 狀態時啟動。如果沒有用戶端在逾時之前連線,工作階段會Status轉換為 TERMINATED

閒置逾時

串流工作階段可在沒有使用者輸入的情況下閒置的時間長度。

  • 參數:(內部)

  • 值:60 分鐘

  • 行為:如果在此期間未收到使用者輸入,Amazon GameLift Streams 會終止串流工作階段。

工作階段長度逾時

Amazon GameLift Streams 保持串流工作階段開啟的持續時間上限。

  • 參數:在 StartStreamSession SessionLengthSeconds

  • 範圍:1 - 86400 秒 (24 小時)

  • 預設:43200 秒 (12 小時)

  • 行為:達到時間限制時,無論任何現有的用戶端連線為何, 都會終止串流工作階段。

終止串流工作階段

如果您需要強制終止串流工作階段,您有下列選項:

  • 使用 TerminateStreamSession API:若要使用 TerminateStreamSession,您將需要串流群組 ID 和串流工作階段 ID。您可以使用 ListStreamSessionsListStreamSessionsByAccount 搭配 --status CONNECTED 參數,以取得已連接用戶端的串流工作階段清單。

  • 從其串流群組移除工作階段的位置:從正在串流工作階段的串流群組移除位置將終止該位置中的所有作用中串流工作階段。您可以從主控台或使用 RemoveStreamGroupLocations API 移除串流群組中的位置。

  • 刪除工作階段的串流群組:刪除串流群組將終止串流群組所有位置中的所有作用中串流工作階段。您可以從主控台或使用 DeleteStreamGroup API 刪除串流群組。請謹慎使用 ,因為您將突然結束用戶端連線。

重新連線至串流工作階段

如果用戶端在未結束工作階段的情況下中斷與串流工作階段的連線,則可以在串流工作階段啟動ConnectionTimeoutSeconds時所指定的時間內重新連線至工作階段。若要重新連線至工作階段,您需要串流工作階段的 ID。如需詳細資訊,請參閱《Amazon GameLift Streams API 參考》中的 CreateStreamSessionConnection。您可以在 React Starter 範例中看到重新連線至串流工作階段的範例。