

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在游戏服务器上更新对战数据


无论在您的游戏中如何启动对战回填请求，您的游戏服务器都必须能够处理由于对战回填请求而导致 Amazon GameLift Servers 提供的游戏会话更新。

当 Amazon GameLift Servers 完成匹配回填请求时（无论成功与否），它将使用回调函数 `onUpdateGameSession` 调用您的游戏服务器。此调用有三个输入参数：比赛回填票证 ID、状态消息以及包含最多的 up-to-date配对数据（包括玩家信息）的 GameSession 对象。您需要将以下代码添加到游戏服务器以作为您的游戏服务器集成的一部分：

1. 实现 `onUpdateGameSession` 函数。此函数必须能够处理以下状态消息 (`updateReason`)：
   + MATCHMAKING\$1DATA\$1UPDATED – 新玩家已与游戏会话成功匹配。`GameSession` 对象包含更新的对战构建器数据，包括有关现有玩家和新匹配的玩家的玩家数据。
   + BACKFILL\$1FAILED – 对战回填尝试由于内部错误而失败。`GameSession` 对象保持不变。
   + BACKFILL\$1TIMED\$1OUT – 对战构建器未能在时间限制内找到回填对战。`GameSession` 对象保持不变。
   + BACKFILL\$1CANCELLED — 通过调用 StopMatchmaking （客户端）或 StopMatchBackfill （服务器）取消了匹配回填请求。`GameSession` 对象保持不变。

1. 对于成功的回填对战，请使用更新的对战构建器数据来在新玩家连接到游戏会话时进行处理。至少，您将需要使用新玩家的团队任务以及要让玩家在游戏中开始所需的其他玩家属性。

1. 在游戏服务器调用 Server SDK 操作 [ ProcessReady()](https://docs.amazonaws.cn/gamelift/latest/developerguide/integration-server-sdk-cpp-ref-actions.html#integration-server-sdk-cpp-ref-processready) 时，将`onUpdateGameSession`回调方法名称添加为流程参数。