Lobby 错误消息

Lobby 服务以“问题详细信息”格式 (RFC 7807) 返回错误,其中包括一些与大多数其他 UGS 服务一致的额外字段。

示例:

{
  "title": "Bad Request",
  "status": 400,
  "code": 16000,
  "detail": "request failed validation",
  "details": [
    {
      "errorType": "validation",
      "message": "count in body should be less than or equal to 100"
    }
    {
      "errorType": "validation",
      "message": "skip in body should be greater than or equal to 0"
    }
  ],
  "type": "http://unity3d/lobby/errors/validation-error"
}

错误状态

字段描述
Code用于唯一标识错误类型的 Unity Services 错误代码
Detail针对问题的这一特定发生情况的解释,供人阅读理解。
Details一系列关于特定错误的更多详细信息。请参阅下文的错误详细信息
Status响应的 HTTP 状态代码。
Title供人阅读理解的、简短的问题类型摘要。除非出于本地化目的,同一问题的不同发生情况也应使用同一 Title。
Type标识问题类型并可能针对问题提供相关文档的 URL。这些 URL 目前无效

错误详细信息

字段描述
ErrorType表示错误详细信息的类型。
Message提供关于错误的更多信息。

错误代码

Lobby 服务错误响应的 code 属性可用于以编程方式确定所发生问题的类型。SDK 使用这些信息来自动解决某些问题(例如刷新已过期的令牌、重试因瞬时错误而失败的请求等等),并且这些信息在 SDK 抛出的异常中向开发者显示,以便客户端可以做出适当的响应。

通用错误代码的范围为 0-999。当客户端与 Lobby 服务之间的某些组件存在问题(例如网络连接问题、身份验证失败或速率限制)时,通常会出现这些错误代码。如果这些情况没有得到透明处理,通常表示服务存在更为严重的错误,而且通常会更为罕见。

Lobby 专用错误代码的范围为 16000-16999。这些用于标识 Lobby 服务中的特定错误情形。其中许多情形都很常见,并会在服务正常运行期间发生,游戏开发者应该妥善处理,以提供流畅的用户体验。例如,在执行加入操作时,可能会遇到 LobbyNotFound (16001) 错误,这可能只是表示在查询结果返回后,您尝试加入的大厅已被删除,游戏客户端应能够妥善地处理这种情况。

某些通用错误代码和 Lobby 专用错误代码之间可能看起来存在一定重叠(最明显的例子是 NotFound),但它们不应该以相同的方式处理。通用 NotFound 错误代码有可能表明 SDK 或 API 客户端存在功能问题(例如请求 URL 配置不正确)。您应该查看错误详细信息,以了解有关特定问题的更多信息,从而确定如何解决问题。

Code名称描述
0Unknown当服务器无法确定具体的错误时,便会返回 Unknown。
1TransportError存在 DNS、TLS 或其他传输错误时,便会返回 TransportError。
2Timeout当因为没有在分配的时间内收到响应而导致请求出现超时时,便会返回 Timeout。
3ServiceUnavailable当服务因为发生过载而不可用时或因为服务维护而出现停机时,通常会返回 ServiceUnavailable。
4ApiMissing当相应 API 不存在时,便会返回 ApiMissing。
5RequestRejected当请求在到达 API 之前被拒绝时,便会返回 RequestRejected。有关更多信息,请参阅“Title”和“Details”。
50TooManyRequests当客户端过于频繁地提出请求而被限制请求速率时,便会返回 TooManyRequests。请参阅“Lobby 速率限制”。
51InvalidToken当身份验证令牌无效时,便会返回 InvalidToken。
52TokenExpired当身份验证令牌已过期时,便会返回 TokenExpired。
53Forbidden当用户没有权限执行请求的操作时,便会返回 Forbidden。
54NotFound当未找到请求的资源时,便会返回 NotFound。
55InvalidRequest当请求已被理解,但由于请求验证错误而导致 API 拒绝处理时,便会返回 InvalidRequest。
16000ValidationError如果在验证用户的请求时出现问题,便会返回 ValidationError。错误详细信息中会包含问题的更多信息。
16001LobbyNotFound当未找到请求的大厅时,便会返回 LobbyNotFound。
16002PlayerNotFound当未在大厅中找到请求的玩家时,便会返回 PlayerNotFound。
16003LobbyConflict如果在尝试更新大厅时发生冲突,便会返回 LobbyConflict。这可能表示试图加入大厅的玩家已经是大厅的成员,或者在尝试对大厅进行其他更新时发生了无法解决的问题。
16004LobbyFull当用户尝试加入的大厅已达到玩家人数上限时,便会返回 LobbyFull。
16005LobbyLocked当大厅成员已被锁定而不再允许新玩家加入时,便会返回 LobbyLocked。
16006NoOpenLobbies当 QuickJoin 请求无法找到包含空缺位置的大厅来让用户加入时,便会返回 NoOpenLobbies。
16007LobbyAlreadyExistsLobbyAlreadyExists 表示大厅因为已经存在而无法创建。
16008LobbyNotModifiedLobbyNotModified 表示大厅资源自上次观察到的版本以来一直没有修改。
16009IncorrectPasswordIncorrectPassword 表示玩家尝试用来加入大厅的密码与大厅的密码不符。
16010InvalidJoinCodeInvalidJoinCode 表示加入代码因为某些原因而无效,例如包含无效字符。