Workaround for peer-to-peer connection
The end result of matchmaking is a Match - a collection of tickets that satisfy the rules for the queue. For titles with a dedicated server, the match ID is unique, and can be used to identify groups of players that should play together.
In the peer-to-peer case however, the title needs to pass connection information to each other. This tutorial describes a workaround to perform this.
Note
Peer-to-peer connection in matchmaking is currently not officially supported. Consider PlayFab Party, or contact us for more information.
Specify an IP address as an attribute
Similar to Specifying attributes with your tickets, an arbitrary value such as an IP address can be specified as an attribute. It does not need to correspond to a rule.
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"
}
Retrieving all player IPs from a Match
When calling
GetMatch, specify the flag ReturnMemberAttributes
as true
to have the attributes of each ticket returned. This will include the specified IP addresses.
{
"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
While this can be used to exchange IPs, it does not guarantee connectivity between the clients.
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應