Freigeben über


Problemumgehung für Peer-to-Peer-Verbindungen

Das Endergebnis der Matchmaking ist eine Übereinstimmung – eine Sammlung von Tickets, die die Regeln für die Warteschlange erfüllen. Bei Titeln mit einem dedizierten Server ist die Match-ID eindeutig und kann verwendet werden, um Gruppen von Spielern zu identifizieren, die zusammen spielen sollen.

Im Peer-to-Peer-Fall muss der Titel jedoch Verbindungsinformationen aneinander übergeben. In diesem Tutorial wird eine Problemumgehung beschrieben, um dies auszuführen.

Notiz

Peer-to-Peer-Verbindungen beim Matchmaking werden derzeit nicht offiziell unterstützt. Erwägen Sie PlayFab Party, oder kontaktieren Sie uns für weitere Informationen.

Angeben einer IP-Adresse als Attribut

Ähnlich wie bei Angeben von Attributen mit Ihren Tickets kann ein beliebiger Wert wie eine IP-Adresse als Attribut angegeben werden. Es muss keiner Regel entsprechen.

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"
}

Abrufen aller Spieler-IPs aus einem Match

Geben Sie beim Aufrufen von GetMatch das Flag ReturnMemberAttributes als true an, damit die Attribute jedes Tickets zurückgegeben werden. Dies schließt die angegebenen IP-Adressen ein.

{
    "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"
                    }
                }
            }
        ]
    }
}

Notiz

Dies kann zwar zum Austauschen von IP-Adressen verwendet werden, garantiert jedoch keine Konnektivität zwischen den Clients.