分配有效负载
**注意:**本页上的内容适用于 Multiplay Hosting。如需查看此页面的 Clanforge 版本,请参阅分配有效负载 (Clanforge)。
分配有效负载功能允许您在服务器分配请求中发送任何文件作为有效负载,以提供一种可配置的方式来按匹配配置游戏。通过 ProcessAllocation V1 终端上传有效负载后,您可以从游戏进程中检索它。分配结束后,与该分配相关的有效负载将不再可用。请参阅有效负载生命周期。
限制
分配有效负载功能具有以下限制:
- 有效负载不能超过 30 KB。该终端会拒绝有效负载超过限制大小的分配并返回状态码 400。
- 可以将有效负载包含在 Multiplay ProcessAllocation V1 终端内的分配中。
- 可以使用 ProcessDeallocation V1 终端移除有效负载。
有效负载生命周期
有效负载是与特定分配相关的、基于会话的临时数据。在与有效负载关联的分配被取消分配后,该有效负载不再可用。
满足以下条件之一会造成有效负载无法检索:
- 通过取消分配终端取消分配游戏服务器。当分配的生命周期结束时,Multiplay Hosting 会清除与分配 UUID 相关的所有数据。
- 有效负载达到其生存时间 (TTL)。分配超时值可以设置机群缩放设置中的有效负载 TTL,如果未在机群级别设置,则默认为一小时。
发送有效负载
要发送有效负载值,请在请求正文中包含 payload
字符串值,并且有效负载在分配的整个生命周期内都可用。
Multiplay API URL:
https://multiplay.services.api.unity.com
请求示例
curl --location --request POST 'https://multiplay.services.api.unity.com/v1/allocations/projects/<projectid>/environments/<environmentid>/fleets/<fleetid>/allocations' \
--header 'Authorization: Basic YOUR_AUTH_CREDENTIALS' \
--header 'Content-Type: application/json' \
--data-raw '{
allocationId: "<allocation_uuid>"",
buildConfigurationId: <build_config_id>,
regionId: "<region_id>"",
payload: "this can be anything"
}'
响应示例
{
"allocationId": "<allocation_uuid>",
"href": "string"
}
检索有效负载
分配请求完成后,您可以从游戏服务器访问有效负载。只需向游戏服务器机器上的本地有效负载代理发送请求,即可从游戏服务器检索有效负载文件。有效负载代理是可通过端口 8086
访问的服务,并与游戏服务器位于同一环境中。它可以检索通过分配终端上传的有效负载。
注意:请使用 server.json file 文件来获取服务器的分配 UUID。
请求示例
curl -X GET http://localhost:8086/payload/<allocation_uuid>
响应示例
HTTP/1.1 200 OK
Date: Mon, 26 Jul 2021 17:00:33 GMT
Content-Length: 23
Content-Type: text/plain; charset=utf-8
This can be anything.