> ## 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 Party 網路與網路探索流程

> PlayFab Party 網路探索的概念指南：玩家如何在您的多人遊戲中尋找、邀請及連線到 Party 聊天和資料網路。

# 將探索與 PlayFab Party 整合

探索是使用者找到彼此以一起遊玩的程序。PlayFab Party 不提供探索機制，但可以與任何在使用者之間提供通訊的現有機制搭配使用。

## 基本建立和加入流程

PlayFab Party 網路由使用者在單一用戶端上[建立](#creating-a-network)、[公告](#advertising-a-network)，然後由其他使用者在不同的用戶端上[加入](#joining-a-network)。

<a id="creating-a-network" />

### 建立網路

將 PlayFab Party 網路用於遊戲工作階段時，首先要考量的是選擇由哪個用戶端和使用者建立網路 (`PartyManager::CreateNewNetwork()`)。從 PlayFab Party 的角度來看，由哪位使用者執行此動作並不重要；任何使用者都可以建立網路。建立者在網路中不會獲得任何特殊權限。不過，建立網路的用戶端負責：

* 設定不可變的網路設定 (`PartyNetworkConfiguration`)
* 決定初始邀請 (`PartyInvitationConfiguration`)
* 向其他使用者公告網路

初始邀請包含識別碼以及允許加入網路的使用者清單。使用者以 `title_player_account` [實體識別碼](/zh-TW/services/playfab/live-service-management/game-configuration/entities)清單的形式指定。或者，清單也可以是空的，讓任何擁有網路描述元和邀請識別碼的使用者都能加入。

<a id="advertising-a-network" />

### 公告網路

若要加入現有的 PlayFab Party 網路，用戶端需要兩項資訊：

* 網路描述元
* 邀請識別碼

PlayFab Party 網路是由網路描述元 (`PartyNetworkDescriptor`) 識別。這是一個大部分不透明的結構，會編碼建立網路連線所需的資訊。網路建立完成後，建立網路的用戶端會收到網路描述元 (`PartyCreateNewNetworkCompletedStateChange`、`PartyNetwork::GetNetworkDescriptor()`)。為了方便開發，PlayFab Party 提供方法，可將網路描述元序列化為適合網頁的字串，以及從該字串還原序列化 (`PartyManager::SerializeNetworkDescriptor(), PartyManager::DeserializeNetworkDescriptor()`)。

邀請識別碼是唯一識別邀請的字串。用戶端在明確建立邀請時，或在建立網路時建立初始邀請時，會提供此識別碼。如果用戶端未提供邀請識別碼，系統會產生一個唯一的識別碼。

若要向其他使用者公告新網路，請透過任何適當的通訊媒介傳送這兩項資訊。

<a id="joining-a-network" />

### 加入網路

加入網路是兩個步驟的程序。想要加入網路的用戶端必須先將還原序列化的網路描述元提供給 `PartyManager::ConnectToNetwork()` 以連線到網路，然後將邀請識別碼提供給 `PartyNetwork::AuthenticateLocalUser()` 以驗證使用者。

## 案例範例

### 社交邀請

最簡單的案例是單一使用者建立遊戲工作階段，並希望透過共用的社交平台邀請其他已知的使用者。流程可能如下所示：

* 邀請者使用開放邀請建立網路，或使用包含邀請者想要一起遊玩之所有使用者的邀請建立網路。
* 建立網路後，邀請者透過社交平台的邀請機制，將網路描述元和邀請識別碼傳送給其他使用者。
* 每位受邀使用者都使用網路描述元和邀請識別碼連線到網路。

<Note>
  在邀請中指定使用者時，會使用使用者的 `title_player_account` [實體識別碼](/zh-TW/services/playfab/live-service-management/game-configuration/entities)。這些實體識別碼需要在 PlayFab Party 之外另行取得。
</Note>

### 大廳

如果您的遊戲提供允許在用戶端之間傳送資料的大廳，就可以將其用作交換網路連線資訊的通訊媒介。流程可能如下所示：

* 選取一組使用者一起玩遊戲。
* 選取其中一位使用者作為建立者。
* 該組中的每位使用者都將其 `title_player_account` [實體識別碼](/zh-TW/services/playfab/live-service-management/game-configuration/entities)傳送給建立者。
* 建立者建立網路，並在初始邀請設定中指定使用者的實體識別碼。
* 網路建立完成後，建立者將網路描述元和初始邀請識別碼傳送給應加入的使用者。
* 每位使用者都使用網路描述元和邀請識別碼連線到網路。

### 配對

配對服務 (例如 [PlayFab Matchmaking](/zh-TW/services/playfab/live-service-management/game-configuration/entities)) 可用來尋找要一起遊玩的使用者清單。流程可能如下所示：

* 使用者向服務發起比賽要求。要求中必須包含 `title_player_account` [實體識別碼](/zh-TW/services/playfab/live-service-management/game-configuration/entities)，因為比賽結果必須包含每位使用者的實體識別碼。
* 使用者收到比賽結果，其中包含應加入網路的使用者集合。
* 使用預先決定的演算法選取由哪位使用者擔任建立者。
* 建立者建立網路，並在初始邀請設定中指定其他已配對使用者的實體識別碼。
* 網路建立完成後，建立者使用頻外通訊媒介，將網路描述元和初始邀請識別碼傳送給其他已配對的使用者。
* 每位已配對的使用者都使用網路描述元和邀請識別碼連線到網路。

<Note>
  需要頻外通訊媒介，才能將連線資訊從建立者傳送給其他已配對的使用者。
</Note>


## Related topics

- [XBOX PC 遠端工具快速入門指南](/zh-TW/tools/tools-pc/xbox-pc-remote-tools/quickstart.md)
- [PlayFab Party 邀請與安全性模型](/zh-TW/services/playfab/multiplayer/networking/concepts-invitations-security-model.md)
- [網路](/zh-TW/build/console-features/networking/gc-networking-toc.md)
- [XR-045 XBOX 網路與帳戶權限](/zh-TW/publishing/certification/xr/xr-045.md)
- [XBOX 遊戲的遊戲網狀架構網路功能](/zh-TW/build/console-features/networking/game-mesh/index.md)
