> ## 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 Matchmaking 在已匹配的玩家之间交换 IP 地址和连接信息,以进行点对点多人游戏会话托管。

匹配的最终结果是一个 Match——一组满足队列规则的工单。对于具有专用服务器的游戏,match ID 是唯一的,可用于识别应一起玩游戏的玩家群体。

然而,在点对点情况下,游戏需要相互传递连接信息。本教程介绍执行此操作的变通方法。

<Note>
  匹配中的点对点连接目前不受官方支持。请考虑 [PlayFab Party](/services/playfab/multiplayer/networking),或联系我们了解更多信息。
</Note>

## 将 IP 地址指定为属性

与[使用工单指定属性](/services/playfab/multiplayer/matchmaking/ticket-attributes)类似,可以将任意值(例如 IP 地址)指定为属性。它无需对应于某条规则。

```json theme={null}
POST https://{{TitleId}}.playfabapi.com/Match/CreateMatchmakingTicket
{
    "Creator": {
        "Entity": {
            "Id": "A8140AB9109712B",
            "Type": "title_player_account",
            "TypeString": "title_player_account"
        },
        "Attributes": {
            "DataObject": {
                "IP": "123.234.123.12"
            }
        }
    },
    "MembersToMatchWith": [],
    "GiveUpAfterSeconds": 2,
    "QueueName": "IPExampleQueue"
}
```

## 从 Match 中检索所有玩家的 IP

调用 [GetMatch](xref:titleid.playfabapi.com.multiplayer.matchmaking.getmatch) 时,将 `ReturnMemberAttributes` 标志指定为 `true`,以返回每张工单的属性。这将包含所指定的 IP 地址。

```json theme={null}
{
    "code": 200,
    "status": "OK",
    "data": {
        "MatchId": "3d58dc0f-2eb6-4162-a2e0-1ed6ac5ea551",
        "Members": [
            {
                "TeamId": "",
                "Entity": {
                    "Id": "A8140AB9109712B",
                    "Type": "title_player_account",
                    "TypeString": "title_player_account"
                },
                "Attributes": {
                    "DataObject": {
                        "IP": "123.234.123.12"
                    }
                }
            },
            {
                "TeamId": "",
                "Entity": {
                    "Id": "562D72A5B184F612",
                    "Type": "title_player_account",
                    "TypeString": "title_player_account"
                },
                "Attributes": {
                    "DataObject": {
                        "IP": "123.234.123.12"
                    }
                }
            }
        ]
    }
}
```

<Note>
  虽然这可以用于交换 IP,但并不能保证客户端之间的连接性。
</Note>


## Related topics

- [Matchmaking 快速入门](/zh-CN/services/playfab/multiplayer/matchmaking/quickstart.md)
- [使用直接点对点连接](/zh-CN/services/playfab/multiplayer/networking/concepts-direct-peer-connectivity.md)
- [DirectPeerConnectivityOptions](/zh-CN/services/playfab/multiplayer/networking/unity-party-api-reference/enums/partyunitydirectpeerconnectivityoptions.md)
- [PlayFab Party 发行说明](/zh-CN/services/playfab/multiplayer/networking/release-notes.md)
- [PlayFab Party 端口使用情况和防火墙要求](/zh-CN/services/playfab/multiplayer/networking/concepts-port-usage.md)
