> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 與 PlayFab Lobby 和 Match 整合

> 將 XBOX 多人遊戲活動與 PlayFab Lobby 和 Match 整合的最佳做法，包括活動更新、XUID 解析和邀請處理。

本主題說明如何將 MPA 與 PlayFab Lobby 和 Match 服務整合。這包括適用於其他類似大廳和配對服務的最佳做法和一般指引。

## 設計概觀

若要將 MPA 與 PlayFab Lobby 和 Match 或類似服務整合，遊戲或遊戲服務必須從大廳狀態查詢相關資訊，然後將此資訊移轉至 MPA 服務。MPA 服務不適用於大廳或工作階段狀態資訊。

### 活動

對於 [MPA 活動](/zh-TW/services/xbox-services/multiplayer/mpa/concepts/live-mpa-activities)，來源資訊應該是基礎的大廳資訊。遊戲或服務需要依照下列最佳做法，在 MPA 活動內容欄位中設定相關資訊：

* 更新頻率
  從大廳資料進行狀態移轉時，應以合理的頻率反映變更，例如 `CurrentPlayers` 資訊的更新。更新呼叫不應超過[精細速率限制](/zh-TW/services/xbox-services/develop/best-practices/live-fine-grained-rate-limiting)中所述的呼叫限制。也不應刪除/重新建立 MPA 活動來更新資訊。

* XBOX 使用者身分識別 (XUID)
  在 XBOX 服務以外的服務中，玩家的 XUID 通常是未經驗證的資訊，也不是跨網路服務的主要識別碼。PlayFab Lobby 對玩家使用跨網路的 PlayFab 使用者實體識別碼，可透過 API 或服務呼叫將其轉換為作用中使用者的 XUID。如需詳細資料，請參閱 PlayFab [教學課程：取得玩家個人檔案](/zh-TW/services/playfab/player-progression/player-data/getting-player-profiles)。只有此解析的 XUID 才應被視為安全的。

  無法以這種方式擷取其他玩家的 XUID。解決方法是將 XUID 以大廳中玩家的自訂字串屬性提供。這些字串不應被視為安全的，且應一律透過 PlayFab 服務使用 `PFAccountManagementClientGetPlayFabIDsFromXboxLiveIDsGetResult` 進行驗證，以比較 XUID 的預期和實際 PlayFab 使用者實體識別碼。不相符表示 XUID 不正確。

  對於所有服務，以不安全字串提供的 XUID 都不安全，若未經驗證可能會導致模擬攻擊。

* 連線字串
  若要與 PlayFab Lobby 服務整合，MPA 活動的連線字串應設定為可透過 `PFLobbyGetConnectionString` 擷取的大廳連線字串。其他服務應使用對等的加入字串。

* 反映大廳的可加入性
  活動的目的是讓玩家加入遊戲體驗，因此需要與基礎大廳狀態的可加入性相符。當活動已滿 (`CurrentPlayers` 達到 `MaxPlayers` 值) 時，活動會自動變成無法加入。想要讓活動暫時無法加入的遊戲也可以使用此行為。只有在未來不可能再加入時，才應刪除活動。請注意，改變活動的隱私權設定只會限制加入，但無法封鎖所有加入。

  由於活動加入的延遲，遊戲應一律考慮對已滿或無法加入的工作階段執行加入的流程，並向玩家提供適當的錯誤。

* 反映隱私權變更
  透過加入限制所表示的活動隱私權狀態和變更，應反映為基礎 PlayFab Lobby 定義的存取原則。這同樣適用於類似的服務，且可能需要對應隱私權值。

### 邀請

對於 [MPA 邀請](/zh-TW/services/xbox-services/multiplayer/mpa/concepts/live-mpa-invites)，建議的來源也應該是基礎的大廳資訊。此最佳做法方法比邀請加入 PlayFab Party 之類的網路網格更可靠，且可透過大廳資料立即提供狀態資訊。

若要與 PlayFab Lobby 服務整合，MPA 邀請的連線字串應設定為大廳連線字串。此字串可透過 `PFLobbyGetConnectionString` 擷取。此外，應為邀請設定適當的跨平台加入值。

### 最近的玩家

[MPA 最近的玩家](/zh-TW/services/xbox-services/multiplayer/mpa/concepts/live-mpa-recent-players)功能的使用與基礎大廳沒有密切關聯，可以由遊戲邏輯驅動。最近的玩家呼叫不應超過[精細速率限制](/zh-TW/services/xbox-services/develop/best-practices/live-fine-grained-rate-limiting)中所述的呼叫限制。最佳做法是在合理的時間範圍內批次處理最近的玩家活動，以遵守呼叫限制。遊戲回報最近的玩家不需要是即時的，建議以批次方式提交。

### 配對

整合 PlayFab Match 或類似的配對服務不需要任何直接的 MPA 功能。如果無法加入，遊戲可能會想要在配對期間更新 MPA 活動的可加入性。最佳做法是將 PlayFab Match 與 PlayFab Lobby 搭配使用。

就像大廳使用者身分識別一樣，PlayFab Match 對玩家使用跨網路的 PlayFab 使用者實體識別碼，可透過 API 或服務呼叫將其轉換為作用中使用者的 XUID。無法以這種方式擷取其他玩家的 XUID。與大廳類似的解決方法是將 XUID 以大廳中玩家的自訂字串屬性提供。這些字串不應被視為安全的，且應一律透過 PlayFab 服務，依照上述針對 PlayFab Lobby 所概述的方式，比較 XUID 的預期和實際 PlayFab 使用者實體識別碼進行驗證。不相符表示 XUID 不正確。

對於配對，以不安全字串提供的 XUID 都不安全，若未經驗證可能會導致模擬攻擊。

## 一般最佳做法

MPA 服務的設計是作為大廳或配對服務 (例如 PlayFab Lobby 和 Match) 之上 XBOX 功能的輕量型整合點。此整合可以是輕量型的，只需在特定的連線點執行，以將所需的資訊和相關更新反映到活動、邀請和最近的玩家功能中。

此外，MPA 服務的整合也應考慮服務對服務端點。視遊戲、多人遊戲和伺服器架構而定，直接的服務對服務呼叫可能比用戶端呼叫簡單且可靠得多。這通常適用於 MMO 遊戲。

就像儲存在 PlayFab Lobby 和 Match 自訂字串中的 XUID 資訊一樣，任何其他自訂身分識別資訊都應一律被視為不安全的，並在使用前進行驗證。缺乏驗證可能會導致模擬攻擊，特別是當遊戲包含具有更多使用者存取權和保護的平台時。


## Related topics

- [多人遊戲活動 (MPA) 概念](/zh-TW/services/xbox-services/multiplayer/mpa/concepts/live-mpa-concepts-nav.md)
- [概念](/zh-TW/services/xbox-services/multiplayer/mpa/concepts/index.md)
- [與 PlayFab Multiplayer Servers 整合](/zh-TW/services/playfab/multiplayer/matchmaking/multiplayer-servers.md)
- [PlayFab Lobby 和 Matchmaking SDK](/zh-TW/services/playfab/multiplayer/lobby/lobby-matchmaking-sdks/lobby-matchmaking-sdks.md)
- [整合 PlayFab Unreal Engine Marketplace 外掛程式](/zh-TW/services/playfab/multiplayer/networking/party-unreal-engine-oss-playfab-plugin-integration.md)
