POST (/serviceconfigs/{scid}/hoppers/{hoppername})
创建指定的匹配票证。
重要提示:
此方法适用于协定 103 或更高版本,并且每个请求都需要一个 X-Xbl-Contract-Version: 103 或更高版本的标头元素。
备注
此 HTTP/REST 方法为具有服务配置 ID (SCID) 级别特定名称的漏斗创建匹配票证。 此方法可由 Microsoft.Xbox.Services.Matchmaking.MatchmakingService.CreateMatchTicketAsync 方法包装。
URI 参数
参数 | 类型 | 说明 |
---|---|---|
scid | GUID | 会话的服务配置标识符 (SCID)。 |
hoppername | 字符串 | 漏斗的名称。 |
授权
类型 | 必需 | 说明 | 缺少时的响应 |
---|---|---|---|
权限和设备类型 | 是 | 当用户的 deviceType 设置为主机时,只允许在声明中具有多人游戏权限的用户调用匹配服务。 | 403 |
设备类型 | 是 | 当用户的 deviceType 不存在或设置为非主机时,所匹配的作品不能是仅限主机的作品。 | 403 |
游戏 ID/购买证明/设备类型 | 是 | 所匹配的游戏必须允许匹配指定的游戏声明与设备类型组合。 | 403 |
HTTP 状态代码
请求正文
必需成员
成员 | 类型 | 说明 |
---|---|---|
serviceConfig | GUID | 会话的 SCID。 |
hopperName | 字符串 | 漏斗的名称。 |
giveUpDuration | 32 位有符号整数 | 最大等待时间(秒数整数)。 |
preserveSession | 枚举 | 指示会话是否要重复用作匹配到其中的会话的值。 可能的值为“始终”和“从不”。 |
ticketSessionRef | MultiplayerSessionReference | 玩家或组当前正在其中玩游戏的会话的 MultiplayerSessionReference 对象。 |
ticketAttributes | 对象的集合 | 用户提供的有关玩家组的属性和值。 |
禁止成员
在请求中禁止所有其他成员。
示例请求
必须先创建 ticketSessionRef 对象引用的会话,然后才能创建匹配票证,并且该会话必须包含要匹配的玩家及其特定于玩家的属性。 每个玩家必须创建或加入针对 MPSD 的会话,向会话添加相关的匹配属性。 匹配属性放置在每个玩家的名为 matchAttrs 的自定义属性字段中。
创建或加入请求将提交到 https://sessiondirectory.xboxlive.com/serviceconfigs/{scid}/sessiontemplates/{templatename}/sessions/{sessionname},可能如下所示:
{
"members": {
"me": {
"constants": {
"system": {
"xuid": 2535285330879750
}
},
"properties": {
"custom": {
"matchAttrs": {
"skill": 5,
"ageRange": "teenager"
}
}
}
}
}
}
一旦创建了会话,作品就可以调用匹配服务来为该会话创建票证。
注意: 游戏可以让用户重试此调用,但在数据失败时不应自动重试。
POST /serviceconfigs/{scid}/hoppers/{hoppername}
{
"giveUpDuration":10,
"preserveSession": "never",
"ticketSessionRef": {
"scid": "ABBACDDC-0000-0000-0000-000000000001",
"templateName": "TestTemplate",
"name": "5E55104-0000-0000-0000-000000000001"
},
"ticketAttributes": {
"desiredMap": "Test Map",
"desiredGameType": "Test GameType"
}
}
响应正文
成员 | 类型 | 说明 |
---|---|---|
ticketId | GUID | 正在创建的票证的 ID。 |
waitTime | 32 位有符号整数 | 漏斗的平均等待时间(以秒计的整数)。 |
{
"ticketId":"0584338f-a2ff-4eb9-b167-c0e8ddecae72",
"waitTime":60
}