> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 会话模板常量

> 预定义 MPSD 会话模板常量(system、capabilities、metrics、memberInitialization、QoS)的参考,用于配置 XBOX 多人游戏会话。

<a id="top" />

本主题介绍基于会话模板版本 107 的多人游戏会话模板的预定义元素。这些元素定义多人游戏会话的设置。

**目录**

* [system](#system)
* [capabilities](#capabilities)
* [metrics](#metrics)
* [memberInitialization](#memberinitialization)
* [peerToPeerRequirements](#peertopeerrequirements)
* [peerToHostRequirements](#peertohostrequirements)
* [measurementServerAddresses](#measurementserveraddresses)
* [cloudComputePackage(已弃用)](#cloudcomputepackage)
* [arbitration(已弃用)](#arbitration)
* [broadcastViewerTitleIds](#broadcastviewertitleids)
* [ownershipPolicies](#ownershippolicies)

<a id="system" />

## system

| 系统常量                         | 说明                                                                                                    | 有效值                                        | 默认值    |
| ---------------------------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------ | ------ |
| `version`                    | 会话模板的版本。                                                                                              | 1 - n                                      | 无      |
| `maxMembersCount`            | 多人游戏活动支持的会话成员位置总数。                                                                                    | 常规会话为 1 - 100,大型会话为 101+                   | 100    |
| `visibility`                 | 会话的可见性状态,指示其他用户是否可以看到或加入该会话。                                                                          | "private"、"visible"、"open"                 | "open" |
| `inviteProtocol`             | 将此常量设置为“game”会使被邀请者在被邀请到会话时收到通知。                                                                      | "game"、"tournamentgame"、"chat"、"gameparty" | 无      |
| `reservedRemovalTimeout`     | 成员预留的超时时间(以毫秒为单位)。值为 0 表示立即超时。值为 `null` 被视为无限。                                                        | 0 - n、`null`                               | 30000  |
| `inactiveRemovalTimeout`     | 成员被视为非活动状态的超时时间(以毫秒为单位)。值为 0 表示立即超时。值为 `null` 被视为无限。                                                  | 0 - n、`null`                               | 0      |
| `readyRemovalTimeout`        | 成员被视为就绪的超时时间(以毫秒为单位)。值为 0 表示立即超时。值为 `null` 被视为无限。                                                     | 0 - n、`null`                               | 180000 |
| `sessionEmptyTimeout`        | 空会话的超时时间(以毫秒为单位)。值为 0 表示立即超时。值为 `null` 被视为无限。                                                         | 0 - n、`null`                               | 0      |
| `capabilities`               | 指定会话的功能。有关详细信息,请参阅本主题稍后的 [capabilities](#capabilities) 部分。                                            | 不适用                                        | 不适用    |
| `metrics`                    | 指定一组由标题定义的服务质量 (QoS) 要求,例如延迟和带宽速度,会话中的成员必须满足这些要求。有关详细信息,请参阅本主题稍后的 [metrics](#metrics) 部分。             | 不适用                                        | 不适用    |
| `memberInitialization`       | 指定新成员加入会话时强制执行的超时和初始化要求。有关详细信息,请参阅本主题稍后的 [`memberInitialization`](#memberinitialization) 部分。          | 不适用                                        | 不适用    |
| `peerToPeerRequirements`     | 指定点对点网状连接的网络 QoS 要求。有关详细信息,请参阅本主题稍后的 [peerToPeerRequirements](#peertopeerrequirements) 部分。            | 不适用                                        | 不适用    |
| `peerToHostRequirements`     | 指定对等到主机连接的网络 QoS 要求。有关详细信息,请参阅本主题稍后的 [peerToHostRequirements](#peertohostrequirements) 部分。            | 不适用                                        | 不适用    |
| `measurementServerAddresses` | 指定用于确定 QoS 测量的一组潜在数据中心。有关详细信息,请参阅本主题稍后的 [measurementServerAddresses](#measurementserveraddresses) 部分。 | 不适用                                        | 不适用    |
| `cloudComputePackage`(已弃用)   | 指定要分配的 XBOX Live Compute 云包的属性。有关详细信息,请参阅本主题稍后的 [cloudComputePackage](#cloudcomputepackage) 部分。       | 不适用                                        | 不适用    |
| `arbitration`(已弃用)           | 指定成员在锦标赛中提交仲裁结果的超时时间。有关详细信息,请参阅本主题稍后的 [arbitration(已弃用)](#arbitration) 部分。                            | 不适用                                        | 不适用    |
| `broadcastViewerTitleIds`    | 指定应始终具有会话读取权限的标题 ID 列表。有关详细信息,请参阅本主题稍后的 [broadcastViewerTitleIds](#broadcastviewertitleids) 部分。       | 不适用                                        | 不适用    |
| `ownershipPolicies`          | 指定与会话所有权相关的策略。有关详细信息,请参阅本主题稍后的 [ownershipPolicies](#ownershippolicies) 部分。                            | 不适用                                        | 不适用    |

[返回本主题顶部。](#top)

<a id="capabilities" />

## capabilities

功能是在会话模板中可选设置的布尔值。
如果不需要功能,则应在模板中设置空的 `capabilities` 属性,以防止在创建会话时指定功能,除非标题需要动态会话功能。

| 功能                                   | 说明                                                                                     | 有效值            | 默认值     |
| ------------------------------------ | -------------------------------------------------------------------------------------- | -------------- | ------- |
| `connectivity`                       | 指示会话是否支持对等连接。如果此值为 `false`,则会话不能启用任何指标,并且会话成员不能设置 `secureDeviceAddress`。此功能无法在大型会话上设置。 | `true`、`false` | `false` |
| `suppressPresenceActivityCheck`      | 如果为 `true`,则关闭在线状态检查。                                                                  | `true`、`false` | `false` |
| `gameplay`                           | 指示会话是否代表实际的游戏玩法,而非设置或菜单时间(如大厅或匹配)。如果为 `true`,则会话处于游戏玩法模式。                              | `true`、`false` | `false` |
| `large`                              | 指示会话是否为大型会话(超过 100 个成员)。大型会话不支持与多人游戏管理器一起使用。                                           | `true`、`false` | `false` |
| `connectionRequiredForActiveMembers` | 指示成员成为活动成员是否需要连接。                                                                      | `true`、`false` | `false` |
| `cloudCompute`(已弃用)                  | 使客户端能够请求代表会话分配云计算实例。已弃用,因为 XBOX Live Compute 不再作为服务提供。                                 | `true`、`false` | `false` |
| `autoPopulateServerCandidates`       | 从 `serverMeasurements` 自动计算并设置 `serverConnectionStringCandidates`。此功能无法在大型会话上设置。       | `true`、`false` | `false` |
| `userAuthorizationStyle`             | 指示会话是否支持来自没有强标题身份的平台的调用。此功能无法在大型会话上设置。                                                 |                |         |

将 `userAuthorizationStyle` 功能设置为 `true` 会导致 `readRestriction` 和 `joinRestriction` 的会话默认值为 `local` 而不是 `none`。这意味着标题必须使用搜索句柄或转移句柄来加入游戏会话。 | `true`、`false` | `false`
`crossPlay` | 指示会话支持 Windows PC、XBOX One 或 XBOX Series 设备之间的跨平台游玩。 | `true`、`false` | `true`
`broadcast` | 指示会话代表一个广播。会话的名称必须是广播者的 xuid。需要 `large` 功能。 | `true`、`false` | `false`
`team` | 指示会话代表一个锦标赛队伍。此功能无法在 `large` 或 `gameplay` 会话上设置。 | `true`、`false` | `false`
`arbitration` | 指示会话必须由添加 `arbitration` 服务器项的服务主体创建。需要 `gameplay`,但无法在 `large` 会话上设置。 | `true`、`false` | `false`
`hasOwners` | 指示会话具有基于某些成员为所有者的安全策略。 | `true`、`false` | `false`
`searchable` | 指示会话可以是搜索句柄的目标会话。如果设置了 `userAuthorizationStyle` 和 `searchable` 功能,则还必须设置 `hasOwners`。 | `true`、`false` | `false`

#### 示例:capabilities

```json theme={null}
"capabilities": {
    "connectivity": true,  
    "suppressPresenceActivityCheck": true,
    "gameplay": true,
    "large": true,
    "connectionRequiredForActiveMembers": true,
    "cloudCompute": true,
    "autoPopulateServerCandidates": true,
    "userAuthorizationStyle": true,
    "crossPlay": true,  
    "broadcast": true,  
    "team": true,
    "arbitration": true,
    "hasOwners": true,
    "searchable": true  
},
```

[返回本主题顶部。](#top)

<a id="metrics" />

## metrics

如果未指定 `metrics` 属性,则它们默认为满足 QoS 要求所需的值。

如果指定了 `metrics` 属性,则值必须足以满足 QoS 要求。

此元素仅在会话设置了 `connectivity` 功能时才有效。

| 指标              | 说明                                   | 有效值            | 默认值     |
| --------------- | ------------------------------------ | -------------- | ------- |
| `latency`       | 指示是否在会话模板中指定了 `latencyMaximum`       | `true`、`false` | 请参阅此说明。 |
| `bandwidthDown` | 指示是否在会话模板中指定了 `bandwidthDownMinimum` | `true`、`false` | 请参阅此说明。 |
| `bandwidthUp`   | 指示是否在会话模板中指定了 `bandwidthUpMinimum`   | `true`、`false` | 请参阅此说明。 |
| `custom`        | 指示是否在会话模板中指定了自定义指标                   | `true`、`false` | 请参阅此说明。 |

#### 示例:metrics

```json theme={null}
"metrics": {
    "latency": true,
    "bandwidthDown": true,
    "bandwidthUp": true,
    "custom": true
},
```

[返回本主题顶部。](#top)

<a id="memberinitialization" />

## memberInitialization

如果设置了 `memberInitialization` 属性,则会话期望客户端系统或标题在创建会话之后或有新成员加入会话时执行初始化。

会话会自动跟踪超时和初始化阶段,包括在设置了任何指标时的 QoS 测量。
对于设置了 `initializationEpisode` 的成员,这些超时会覆盖会话的预留和就绪超时。

`memberInitialization` 不能在大型会话上指定。

| 元素            | 说明                             | 有效值 | 默认值 |
| ------------- | ------------------------------ | --- | --- |
| `joinTimeout` | 指示成员加入会话必须的毫秒数。未能加入的用户的预留将被删除。 |     |     |

**注意:** 默认持续时间足以满足正常的标题执行,但如果标题在多人游戏会话目录 (MPSD) 流程中正在调试,可能会导致加入超时。调试时,请覆盖并增加此会话的默认值。| 0 - n | 10000
`measurementTimeout` | 指示会话成员上传测量的毫秒数。未能上传测量的成员会以“timeout”的失败原因被标记。 | 0 - n | 30000
`evaluationTimeout` | 指示外部评估上传测量的毫秒数。 | 0 - n | 5000
`externalEvaluation` | 如果为 `true`,则表示标题代码基于 QoS 测量执行谁可以加入的评估。多人游戏服务不执行任何 QoS 逻辑,标题负责推进初始化阶段。标题通常不需要此项。 | `true`、`false` | `false`
`membersNeededToStart` | 仅在初始化事件为零时启动会话所需的成员数。 | 1 - `maxMembersCount` | 1

#### 示例:memberInitialization

```json theme={null}
"memberInitialization": {
    "joinTimeout": 10000,
    "measurementTimeout": 30000,
    "evaluationTimeout": 5000,
    "externalEvaluation": false,
    "membersNeededToStart": 1
},
```

[返回本主题顶部。](#top)

<a id="peertopeerrequirements" />

## peerToPeerRequirements

| 点对点网络要求            | 说明                        | 默认值   |
| ------------------ | ------------------------- | ----- |
| `latencyMaximum`   | 任意两个客户端之间的最大延迟(以毫秒为单位)    | 250   |
| `bandwidthMinimum` | 任意两个客户端之间的最小带宽(以千比特每秒为单位) | 10000 |

#### 示例:peerToPeerRequirements

```json theme={null}
"peerToPeerRequirements": {
    "latencyMaximum": 250,
    "bandwidthMinimum": 10000
},
```

[返回本主题顶部。](#top)

<a id="peertohostrequirements" />

## peerToHostRequirements

| 对等到主机网络要求              | 说明                           | 有效值                                                   | 默认值       |
| ---------------------- | ---------------------------- | ----------------------------------------------------- | --------- |
| `latencyMaximum`       | 对等到主机连接的最大延迟(以毫秒为单位)         |                                                       | 250       |
| `bandwidthDownMinimum` | 从主机发送到对等方的信息的最小带宽(以千比特每秒为单位) |                                                       | 100000    |
| `bandwidthUpMinimum`   | 从对等方发送到主机的信息的最小带宽(以千比特每秒为单位) |                                                       | 1000      |
| `hostSelectionMetric`  | 指示使用哪个指标来选择主机                | "bandwidthup"、"bandwidthdown"、"bandwidth" 和 "latency" | "latency" |

#### 示例:peerToHostRequirements

```json theme={null}
"peerToHostRequirements": {
    "latencyMaximum": 250,
    "bandwidthDownMinimum": 100000,
    "bandwidthUpMinimum": 1000,
    "hostSelectionMetric": "bandwidthup"
},
```

[返回本主题顶部。](#top)

<a id="measurementserveraddresses" />

## measurementServerAddresses

应评估的一组潜在服务器连接字符串。
连接字符串必须为小写。
`measurementServerAddresses` 不能在大型会话上指定。

连接字符串以以下格式定义。

`"<server name>": { "secureDeviceAddress": <device address> }`

其中,设备地址是服务器的经过 base-64 编码的安全设备地址。

#### 示例:measurementServerAddresses

```json theme={null}
"measurementServerAddresses": {
    "server farm a": {
        "secureDeviceAddress": "r5Y="
    },
    "datacenter b": {
        "secureDeviceAddress": "rwY="
    }
},
```

[返回本主题顶部。](#top)

<a id="cloudcomputepackage" />

## cloudComputePackage(已弃用)

此属性已弃用,因为 XBOX Live Compute 服务不再可用且已停用。
指定要分配的云计算包的属性。

要求设置 `cloudCompute` 功能。

| 属性        | 说明                          |
| --------- | --------------------------- |
| `titleId` | 指示要分配的云计算包的标题 ID            |
| `gsiSet`  | 指示要分配的云计算包的全球安全基础结构 (GSI) 集 |
| `variant` | 指示要分配的云计算包的变体               |

#### 示例:cloudComputePackage

```json theme={null}
"cloudComputePackage": {
    "titleId": "4567",
    "gsiSet": "128ce92a-45d0-4319-8a7e-bd8e940114ec",
    "variant": "30ebca60-d96e-4629-930b-6957aa6bfbfa"
},
```

[返回本主题顶部。](#top)

<a id="arbitration" />

## arbitration(已弃用)

此属性已弃用,因为 XBOX Live Compute 服务不再可用且已停用。
指定仲裁过程的超时。

要求设置 `arbitration` 功能。

仲裁开始时间在会话中的 */servers/arbitration/constants/system/startTime* 元素中定义。

| 超时                   | 说明                                                      | 有效值   | 默认值    |
| -------------------- | ------------------------------------------------------- | ----- | ------ |
| `forfeitTimeout`     | 指示自仲裁开始时间起的时间(以毫秒为单位)。                                  | 0 - n | 60000  |
| `arbitrationTimeout` | 指示自仲裁开始时间起,仲裁结果超时的时间(以毫秒为单位)。此值不能小于 `forfeitTimeout` 值。 | 0 - n | 300000 |

#### 示例:arbitration

```json theme={null}
"arbitration": {
    "forfeitTimeout": 60000,
    "arbitrationTimeout": 300000
},
```

[返回本主题顶部。](#top)

<a id="broadcastviewertitleids" />

## broadcastViewerTitleIds

指定应始终具有广播会话读取权限的标题的 ID 数组。

#### 示例:broadcastViewerTitleIds

```json theme={null}
"broadcastViewerTitleIds" : ["34567", "8910"],
```

[返回本主题顶部。](#top)

<a id="ownershippolicies" />

## ownershipPolicies

指定当最后一个所有者离开会话时如何处理会话。
要求设置 `hasOwners` 功能。

| 所有权策略                                | 说明                                                                                          | 有效值                   | 默认值          |
| ------------------------------------ | ------------------------------------------------------------------------------------------- | --------------------- | ------------ |
| `migration`                          | 指示当最后一个所有者离开会话时会发生什么情况。如果迁移策略设置为“endsession”,则终止会话。如果迁移策略设置为“oldest”,则选择加入时间最早的成员成为会话的新所有者。 | "oldest"、"endsession" | "endsession" |
| `allowNonOwnerInviteHandles`         | 指示非所有者的会话成员的邀请行为。默认情况下,非所有者无法发送会话邀请。                                                        | `true`、`false`        | `false`      |
| `nonOwnerModifiableSystemProperties` | 在设置了 `hasOwners` 功能为 `true` 的会话中,非所有者可以修改的系统属性名称列表。                                         | 系统属性名称列表              | 不适用          |

#### 示例:ownershipPolicies

```json theme={null}
"ownershipPolicies": {
     "migration": "oldest",
     "allowNonOwnerInviteHandles": true,
     "nonOwnerModifiableSystemProperties": ["joinRestriction", "closed"] 
}
```

[返回本主题顶部。](#top)


## Related topics

- [配置多人服务](/zh-CN/services/xbox-services/multiplayer/concepts/live-configure-the-multiplayer-service.md)
- [跨 XDK 与 GDK 游戏版本的多人游戏邀请](/zh-CN/services/xbox-services/multiplayer/invites/concepts/live-multiplayer-xdkinvites.md)
- [多人游戏会话目录 (MPSD) 概念](/zh-CN/services/xbox-services/multiplayer/mpsd/concepts/live-mpsd-concepts-nav.md)
- [概念](/zh-CN/services/xbox-services/multiplayer/mpsd/concepts/index.md)
- [多人游戏会话模板](/zh-CN/services/xbox-services/multiplayer/mpsd/concepts/live-session-templates.md)
