私有匹配 API
这是在游戏中应用个人匹配时使用的API。要应用组匹配,请使用组API。
匹配请求
这在开始匹配请求时被调用。与 matchId 对应的匹配必须在 Hive 控制台中预先创建。
请求 URL
| 实时 URL | https://api-match.withhive.com/gameindexes/{gameIndex}/matchmakings/{matchId}/players |
| 沙盒 URL | https://sandbox-api-match.withhive.com/gameindexes/{gameIndex}/matchmakings/{matchId}/players |
| HTTP 方法 | POST |
| 内容类型 | application/json |
头部参数
| 字段名称 | 描述 | 类型 | 必需 |
| 授权 | API 调用的身份验证令牌(Bearer) | 字符串 | 是 |
路径参数
| 字段名称 | 描述 | 类型 | 是否必需 |
| gameIndex | 可以在Hive控制台应用中心找到的项目标识符 | int | 是 |
| matchId | 在Hive控制台中创建的每个比赛的标识符 | int | 是 |
请求体
| 字段名称 | 描述 | 类型 | 必填 |
| playerId | 账户标识符 | 长整型 | 是 |
| point | 这是用于匹配的分数。输入范围是0 ~ 999,999,999。如果未输入,将处理为0。 | 整型 | 否 |
| extraData | 附加账户信息(昵称、等级、国家等)。最多可以输入256个字符。将包含在匹配结果中。 | 字符串 | 否 |
响应
| 字段名称 | 描述 |
| playerId | 账户标识符 |
| matchInfo | 请求的信息 gameIndex: gameIndex 的值 matchId: matchId 的值 |
| requestingStatus | 请求状态信息 requested: 匹配请求已成功发出 notRequested: 未发出匹配请求,或匹配已完成且没有进行中的匹配 |
| requestingInfo | 请求信息 requestTimeUtc: 基于 UTC+0 的请求时间 point: 请求时输入的point extraData: 请求时输入的extraData |
| matchingInfo | 匹配进度信息 (status) matchingInProgress: 匹配正在进行中 timeout: 匹配未在时间限制内发生 matched: 匹配已完成 |
请求示例
curl --location 'https://sandbox-api-match.withhive.com/gameindexes/1/matchmakings/1/request' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ya3a' \
--data '{
"playerId":100,
"point": 1000
}'
响应示例
{
"playerId": 100,
"matchInfo": {
"gameIndex": 1,
"matchId": 1
},
"requestingStatus": "requested",
"requestingInfo": {
"requestTimeUtc": "2024-06-05T05:09:28.72",
"point": 1000
},
"matchingInfo": {
"status": "matchingInProgress"
}
}
检查匹配状态
正在检查请求的匹配状态。
请求 URL
| 实时 URL | https://api-match.withhive.com/gameindexes/{gameIndex}/matchmakings/{matchId}/players |
| 沙盒 URL | https://sandbox-api-match.withhive.com/gameindexes/{gameIndex}/matchmakings/{matchId}/players |
| HTTP 方法 | GET |
头部参数
| 字段名称 | 描述 | 类型 | 必需 |
| 授权 | API 调用的身份验证令牌(Bearer) | 字符串 | 是 |
路径参数
| 字段名称 | 描述 | 类型 | 是否必填 |
| gameIndex | 可以在 Hive 控制台应用中心检查的项目标识符 | int | 是 |
| matchId | 在 Hive 控制台中创建的每个比赛的标识符 | int | 是 |
查询参数
| 字段名称 | 描述 | 类型 | 是否必填 |
| id | 用户 ID (`playerId`) | 长整型 | 是 |
响应
| 字段名称 | 描述 |
| playerId | 账户标识符 |
| matchInfo | 请求的信息 gameIndex: gameIndex的值 matchId: matchId的值 |
| requestingStatus | 请求状态信息 requested: 匹配请求成功发出 notRequested : 没有发出匹配请求,或者匹配已经完成且没有进行中的匹配 |
| requestingInfo | 请求信息 requestTimeUtc: 基于UTC+0的请求时间 point: 请求时输入的point extraData: 请求时输入的extraData |
| matchingInfo | 匹配进度信息 (status) matchingInProgress: 匹配正在进行中 timeout: 在时间限制内未完成匹配 matched: 匹配完成 |
请求示例
curl --location --request GET 'https://sandbox-api-match.withhive.com/gameindexes/1/matchmakings/1/players?id=100' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ya3a'
响应示例
当开发者尚未发出匹配请求时,匹配状态结果如下。
{
"playerId": 100,
"matchInfo": {
"gameIndex": 1,
"matchId": 1
},
"requestingStatus": "notRequested"
}
当发出匹配请求 매칭 요청 且匹配仍在进行中时,它返回结果 requested 和 matchingInProgress。
{
"playerId": 100,
"matchInfo": {
"gameIndex": 1,
"matchId": 1
},
"requestingStatus": "requested",
"requestingInfo": {
"requestTimeUtc": "2024-06-05T05:09:28.72",
"point": 1000
},
"matchingInfo": {
"status": "matchingInProgress"
}
}
在匹配完成后检查请求状态时,它返回matched或timeout的结果。这是匹配完成后但在接收匹配结果回调之前的状态。
{
"playerId": 100,
"matchInfo": {
"gameIndex": 1,
"matchId": 1
},
"requestingStatus": "requested",
"requestingInfo": {
"requestTimeUtc": "2024-06-05T05:09:28.72",
"point": 1000
},
"matchingInfo": {
"status": "matched"
}
}
当匹配完成后,Hive 服务器将 作为回调发送匹配结果 到开发者的服务器。在开发者的服务器收到匹配结果回调并返回 HTTP 状态 200 响应给 Hive 服务器后,如果再次检查匹配请求状态,它将变为 notRequested,如下所示,并且 matchingInfo 键将被删除。这是因为当 Hive 服务器收到 HTTP 状态 200 作为回调响应时,它确定开发者请求的匹配已完成,并删除相应的匹配请求事务。
{
"playerId": 100,
"matchInfo": {
"gameIndex": 1,
"matchId": 1
},
"requestingStatus": "notRequested"
}
| | 匹配请求之前 | 匹配请求之后 | 匹配结果生成之后 | 回调接收之后 |
| requestingStatus | 未请求 | 已请求 | 已请求 | 未请求 |
| matchingInfo > Status | 不适用 | 匹配进行中 | 已匹配或超时 | 不适用 |
| 备注 | | 在匹配进行中的时候 | 在回调接收之前 | |
取消匹配请求
取消匹配请求。如果您取消匹配请求,Hive 服务器中的匹配请求事务将被删除。
如果匹配请求在 请求匹配 之后完成,并且在对 匹配结果回调 的响应中发送了 HTTP 状态 200,Hive 服务器将内部视为匹配已完成,并删除相应的匹配请求事务。在这种状态下,即使调用了匹配请求的取消,匹配请求事务也已被删除,因此取消请求将不会被执行,也不会单独返回任何异常。
请求 URL
| 实时 URL | https://api-match.withhive.com/gameindexes/{gameIndex}/matchmakings/{matchId}/players/{playerId} |
| 沙盒 URL | https://sandbox-api-match.withhive.com/gameindexes/{gameIndex}/matchmakings/{matchId}/players/{playerId} |
| HTTP 方法 | DELETE |
头部参数
| 字段名称 | 描述 | 类型 | 是否必需 |
| 授权 | API 调用的身份验证令牌(Bearer) | 字符串 | 是 |
路径参数
| 字段名称 | 描述 | 类型 | 必需 |
| gameIndex | 可以在 Hive 控制台应用中心检查的项目标识符 | int | 是 |
| matchId | 在 Hive 控制台中创建的每场比赛的标识符 | int | 是 |
| playerId | 用户 ID | long | 是 |
响应
在200 OK的情况下,主体数据是空的。
请求示例
curl --location --request DELETE 'https://sandbox-api-match.withhive.com/gameindexes/1/matchmakings/1/players/100' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ya3a'
响应示例
成功处理后没有特殊的响应内容。