基本概念
RTA 使用 WebSocket 工作階段與用戶端建立持續連線。 這就是服務向您傳遞統計資料的方式。 當用戶端傳送已驗證的連線要求時,RTA 會使用提供的權杖來確認可以建立連線,然後建立連線。 建立連線之後,您的應用程式就可以提出要求以訂閱特定統計資料。 訂閱成功時,RTA 會在回應承載中傳回目前的值和一些額外的中繼資料,例如統計資料的類型。 RTA 會轉送用戶端訂閱期間發生的任何統計資料更新。 當您的遊戲不需要某項統計資料的即時更新時,就會停止追蹤該統計資料。中斷連線
當使用者的驗證權杖到期時,服務會終止工作階段。發生這種情況時,您的遊戲應採取相應的動作。 根據設計,RTA 連線會在兩小時後關閉,這會強制用戶端重新連線。 這是因為連線的驗證權杖會被快取以節省訊息頻寬。 最終該權杖會到期。 透過關閉連線並強制用戶端重新連線,用戶端會重新整理驗證權杖。 XBOX 服務 API (XSAPI) 會在 90 分鐘後主動重新連線至 RTA 並重新提交訂閱,為遊戲處理驗證權杖的重新整理。 用戶端可能會因為使用者 ISP 的問題,或遊戲的處理序遭到暫停而中斷連線。 在上述每種情況下,如果遊戲已註冊 RTA 連線狀態變更事件,就會引發中斷連線事件。一般而言,中斷連線時不需要遊戲採取任何動作,但遊戲可能會想要更新 UI 以反映 RTA 連線已中斷。
如果用戶端將 RTA 用於多人遊戲工作階段,並中斷連線 30 秒,多人遊戲工作階段目錄 (MPSD) 會偵測到 RTA 工作階段已關閉,並將使用者踢出工作階段。XSAPI 會自動重新建立 RTA 連線,但在重新建立 RTA 訂閱之後,重寫其 MPSD 工作階段是遊戲的責任。
取消訂閱
不建議為不需要的即時更新追蹤統計資料。 每個追蹤的統計資料都對應一個 RTA 訂閱,而服務會限制使用者在每個遊戲中可以擁有的訂閱數目。 如果您訂閱了所有內容,可能會達到該限制,這會讓您無法訂閱重要的統計資料。 例如,您的遊戲可能只需要特定場景內某項統計資料的更新。 當使用者進入該場景時,您的遊戲應該追蹤該統計資料。 當使用者離開該場景時,您的遊戲應該停止追蹤該統計資料。 同樣地,如果統計資料變更,也不需要通知。 移除所有統計資料變更處理常式會自動讓 XSAPI 移除相關的 RTA 訂閱。 如需訂閱限制的詳細資訊,請參閱本主題稍後的「節流」一節。留意佇列中的延遲項目
取消訂閱統計資料時,可能仍有該統計資料的更新正在傳送至您的用戶端。 因此,即使您的遊戲剛取消訂閱某項統計資料,也請注意它可能仍會收到一兩個與該統計資料相關的更新。 建議在無法辨識訂閱識別碼時忽略統計資料更新。忽略您不了解的訊息
訊息通訊協定可能會更新。為了讓您的應用程式不受任何新訊息影響,建議您的遊戲捨棄未知的訊息類型。節流
RTA 強制執行 1000 的UserStats 節流,以及 2500 的 Presence 節流。
如果用戶端達到節流限制,它會在訂閱或取消訂閱呼叫中收到錯誤,或中斷連線。
無論是哪種情況,用戶端都會隨著錯誤或中斷連線訊息取得更多關於所達到之節流限制的資訊。
開發遊戲時,請記住這些概念。如果您正在做一些極端的事情,
可能會因為服務對您的呼叫進行節流而導致應用程式體驗降低。
在目前的 RTA 版本中,每個應用程式執行個體可以有 1000 個統計資料訂閱。
此外,應用程式執行個體也可以針對線上狀態更新訂閱使用者的整個好友清單長度。
此數字在未來的版本中可能會變更。
