> ## 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 Multiplayer Servers 整合

> 了解如何設定 PlayFab 配對佇列，為每場完成的比賽自動配置 Multiplayer Server 組建或組建別名。

配對包含一個選項，可為產生的比賽自動建立遊戲伺服器。配置的伺服器會執行在佇列設定中設定的組建。啟動時，比賽的成員會作為初始玩家清單傳入伺服器。

配對佇列會繫結至單一多人遊戲伺服器組建或組建別名。

## 使用配對與伺服器直接整合的需求

若要從配對配置多人遊戲伺服器，您必須先設定組建並加以部署。您也可以選擇建立組建別名並使用它。建議使用組建別名，因為它能為您的遊戲提供更大的使用彈性。請透過我們在此提供的連結，取得有關 [Multiplayer Server 組建](/zh-TW/services/playfab/multiplayer/servers/deploying-playfab-multiplayer-server-builds)和 [Multiplayer Server 組建別名](/zh-TW/services/playfab/multiplayer/servers/allocating-with-build-alias)的詳細資訊

配對也需要在佇列中新增區域選取規則，以便在組建的最佳區域中配置比賽。傳入區域選取規則的延遲測量值應與組建作用中的區域相符。如需如何將屬性傳遞給區域選取規則的詳細資訊，請參閱[區域選取規則](/zh-TW/services/playfab/multiplayer/matchmaking/ticket-attributes#region-selection-rule)。

## 為佇列啟用伺服器配置

若要為佇列啟用伺服器配置，您需要在佇列設定頁面上勾選 **Enable server allocation** 核取方塊。啟用之後，選擇 **Build alias** 或 **Build Id**。從下拉式清單中選擇佇列要使用的正確值。啟用此功能後，配對會嘗試為佇列內建立的所有比賽配置伺服器。

下列範例說明使用 Build Id 時，具有多人遊戲伺服器整合之佇列的設定應有的樣子。

```json theme={null}
"MatchmakingQueue": {
    "Name": "ServerEnabledQueue",
    "MinMatchSize": 2,
    "MaxMatchSize": 2,
    "ServerAllocationEnabled": true,
    "BuildId": "88b3e315-829c-4b6d-9872-74f427ad5331",
	"RegionSelectionRule": {
		"MaxLatency": 1000,
		"Path": "Latencies",
		"Weight": 1.0,
		"Name": "RegionSelectionRule"
	}
}
```

以下是使用組建別名的相同範例。

```json theme={null}
"MatchmakingQueue": {
    "Name": "ServerEnabledQueue",
    "MinMatchSize": 2,
    "MaxMatchSize": 2,
    "ServerAllocationEnabled": true,
    "BuildAliasParams": {
        "AliasId": "d14e2ac7-ea51-47aa-a7ba-cc427ab74f9s"
    },
	"RegionSelectionRule": {
		"MaxLatency": 1000,
		"Path": "Latencies",
		"Weight": 1.0,
		"Name": "RegionSelectionRule"
	}
}
```

啟用伺服器配置後，對配對的呼叫流程維持不變。一旦配對為比賽配置伺服器，就可以呼叫 [GetMatch](xref:titleid.playfabapi.com.multiplayer.matchmaking.getmatch)，從 Match 物件本身讀取產生的伺服器詳細資料。

以下提供對啟用伺服器配置之佇列進行 `GetMatch` 呼叫的範例回應。

```json theme={null}
{
    "MatchId": "7c36330d-46b5-443f-8d8f-10390bce09d5",
    "Members": [{
        "TeamId": "",
        "Entity": {
            "Id": "67282A13A1A58910",
            "Type": "title_player_account",
            "TypeString": "title_player_account"
        },
        "Attributes": {
            "DataObject": null,
            "EscapedDataObject": "{\"StringEqualityRulePath\":\"0bc42969-76b1-4dcb-871d-d6e19cee741b\"}"
        }
    },
    {
        "TeamId": "",
        "Entity": {
            "Id": "6DB2B17FD21CC230",
            "Type": "title_player_account",
            "TypeString": "title_player_account"
        },
        "Attributes": {
            "DataObject": null,
            "EscapedDataObject": "{\"StringEqualityRulePath\":\"0bc42969-76b1-4dcb-871d-d6e19cee741b\"}"
        }
    }],
    "RegionPreferences": ["WestUs", " EastUs"],
    "ServerDetails": {
        "IPV4Address": "40.76.31.170",
        "Ports": [{
            "Name": "game_port",
            "Num": 30003
        }]
    }
}
```

用戶端可以使用回應中伺服器詳細資料區段的 IP 和連接埠來連線到伺服器。如需如何將用戶端連線到多人遊戲伺服器的詳細資訊，請參閱[將用戶端連線到伺服器](/zh-TW/services/playfab/multiplayer/servers/connecting-clients-to-game-servers)

<Note>
  當組建的某個區域容量不足時，配對將無法在該區域為佇列配置比賽。配對會持續重試配置，直到票證到期為止。若要增加多人遊戲容量，請參閱[存取提高的核心限制和其他 Azure 區域](/zh-TW/services/playfab/multiplayer/servers/identifying-and-increasing-core-limits)
</Note>

## 傳遞給遊戲伺服器的資訊

以下是配對傳遞給伺服器的資訊清單。

* **SessionId** - 伺服器的 `SessionId` 等於比賽的 MatchId。
* **InitialPlayers** - 此值會設為比賽中的成員清單。可以在遊戲中使用 [GSDK](/zh-TW/services/playfab/multiplayer/servers/integrating-game-servers-with-gsdk) 讀取玩家清單。
* **PreferredRegions** - 此欄位會設為比賽的 `RegionPreferences` 欄位。遊戲伺服器服務會從此清單中為伺服器選擇適當的區域。

配對不會將任何票證屬性傳遞給遊戲伺服器。如果遊戲需要在伺服器上存取任何票證屬性，可以將 `ReturnMemberAttributes` 標頭設為 `true` 並呼叫 [GetMatch](xref:titleid.playfabapi.com.multiplayer.matchmaking.getmatch)。

<Note>
  我們最近啟用了在伺服器配置期間傳遞佇列名稱的功能。此功能目前為預覽版，您可以在[這裡](https://github.com/PlayFab/MpsSamples/blob/main/MatchmakeSample/matchMakingAndMps.md)閱讀更多相關資訊。
</Note>


## Related topics

- [配對](/zh-TW/services/playfab/multiplayer/matchmaking/index.md)
- [配對快速入門](/zh-TW/services/playfab/multiplayer/matchmaking/quickstart.md)
- [使用 PlayFab 的多人遊戲](/zh-TW/services/playfab/multiplayer/mpintro.md)
- [使用 Multiplayer SDK 將 Party 與 Lobby 整合](/zh-TW/services/playfab/multiplayer/networking/party-lobby-integration.md)
- [與 PlayFab Lobby 和 Match 整合](/zh-TW/services/xbox-services/multiplayer/mpa/concepts/live-mpa-playfab-integration.md)
