> ## 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.

# 连接到云托管的 Unreal 服务器

> 使用绕过标准分配的开发实用工具，将 Unreal Engine 客户端连接到 PlayFab Multiplayer Servers (MPS) 托管的专用服务器构建。

# 连接到 MPS 托管的构建

本文介绍如何使用实用工具将客户端连接到 PlayFab Multiplayer Servers (MPS) 托管的服务器。此工具在开发期间用于绕过预置和激活服务器的典型步骤。本示例序列中之前的步骤介绍了如何将 Unreal GSDK 添加到标准 ThirdPersonMP 教程项目。在这样做的过程中，我们设置了服务器连接端，但忽略了正确的客户端连接序列。PlayFab 要求先预置并激活服务器，客户端才能连接到它们。本文不介绍该过程，更多详情请参阅 [MPS 文档](/services/playfab/multiplayer/servers/connecting-clients-to-game-servers)。相反，对于本示例，我们将绕过这些复杂步骤，改用手动实用工具在客户端和服务器之间快速测试连接。

## 先决条件

* 克隆或下载 [MpsSamples 代码库](https://github.com/PlayFab/MpsSamples)
* 一个已完全部署的 ThirdPersonMP 服务器，处于 "Deployed" 状态，至少有一个服务器已完全准备好并处于 "Standby" 模式
  * ThirdPersonMP 是本指南前几页中[构建](/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/building-the-third-person-mp-example-project)和[部署](/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/third-person-mp-example-project-cloud-deployment)的示例项目。
  * 当构建包含准备好接受连接的服务器时，其状态将变为 "Deployed"。这些服务器被认为处于 "Standby"
* 一个[已构建的游戏客户端](/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/building-the-third-person-mp-example-project)，可用于连接
* 具有 .NET Core 3.1 的 Visual Studio（作为 Visual Studio Installer 中的可选复选框可用）

## 如何自动将客户端连接到服务器

您构建的游戏客户端可能是 **ThirdPersonMP.exe**，位于您的项目内部或附近。如果您没有使用 ThirdPersonMP 作为起始模板，那么您构建的游戏客户端将是 **\{YourProjectName}.exe**，类似地位于您的 Unreal 项目内部或附近。找到此文件。

* 找到 `ThirdPersonMP.exe`
* 在相邻位置创建一个新文件 `RunCloud.bat`
* 使用您选择的文本编辑器打开此文件，并设置以下内容：

```Batch theme={null}
ThirdPersonMP {IP-ADDRESS}:{PORT} -log
```

注意：如有必要，请将 `ThirdPersonMP` 替换为您的项目名称。

* 目前，我们尚不知道 IP-ADDRESS 或 PORT，请先保存，并让编辑器保持打开状态。
* 找到文件 `{MpsSamples Repo}/MpsAllocatorSample/MpsAllocatorSample.csproj`
* 在 Visual Studio 中打开此文件
* 运行此程序
* 按照屏幕上的说明，在提示时输入以下值：
  * \{您的 PlayFab TitleId}
  * \{您的 PlayFab 游戏的任何有效且活跃的密钥}
  * 选择 **1** 以执行 **RequestMultiplayerServer**
  * 输入您希望测试的 **Deployed** 状态服务器构建的 \{BuildId}
    * 可在所有构建列表中的名称旁边找到、在特定构建的 **Details** 选项卡中找到，或在任何构建特定页面的 URL 中找到
  * 如果您定义了多个区域，则会提示您选择一个。否则，如果只有一个可用区域，则会自动选择。
  * 对于 Player ID，您可以输入真实或虚假的十六进制数字值
    * 对于遵循 ThirdPersonMP 设置的用户，您可以选择任何十六进制数字，例如 1337、abc123 等
    * 至少输入一个数字，然后再按一次回车键以完成
* 您应该会收到如下所示的响应：

```json theme={null}
{
  "ConnectedPlayers": [],
  "FQDN": "...",
  "IPV4Address": "52.180.68.101",
  "LastStateTransitionTime": "2021-12-06T22:12:46.212Z",
  "Ports": [
    {
      "Name": "gameport",
      "Num": 30000,
      "Protocol": "UDP"
    }
  ],
  "Region": "WestUs",
  "ServerId": "...",
  "SessionId": "...",
  "State": "Active",
  "VmId": "..."
}
```

* 注意：对本示例不重要的值已用 `...` 替换
* 在响应中查找 **IPV4Address** 和 **Ports.Num**
  * 在上面的示例中，这些值分别为：`52.180.68.101` 和 `30000`
  * 您的值可以/会有所不同
* 返回您的 `RunCloud.bat` 文件，为 IP-ADDRESS 和 PORT 填入这些值。示例：

```Batch theme={null}
ThirdPersonMP 52.180.68.101:30000 -log
```

* 从 Windows 资源管理器双击此 .bat 文件以运行游戏客户端，等待片刻，然后再次双击它
* 这应该会启动您的游戏客户端的两个实例，两者都连接到您的云托管游戏服务器
* 此后，您可以在两个游戏中四处移动，应该会看到两个用户的移动和操作都反映在两个游戏客户端中，供两位玩家看到
  * 成功！如果您看到这一点，则说明您已完成完整的 Setup/Build/Deploy/Connect 流程

## 导航

对于某些用户，本指南序列现已完成。您可以返回主 [Unreal GSDK Plugin](/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk) 指南。

如果您的测试是在 Windows 服务器上运行的，那么您可以尝试更高级的 [Linux Server](/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/setting-up-a-linux-dedicated-server-on-playfab) 部署指南。


## Related topics

- [将客户端连接到游戏服务器](/zh-CN/services/playfab/multiplayer/servers/connecting-clients-to-game-servers.md)
- [PlayFab Online Subsystem (OSS) 专用服务器设置](/zh-CN/services/playfab/multiplayer/networking/party-unreal-engine-oss-dedicated-servers.md)
- [使用 PlayFab Multiplayer Servers 托管多人游戏](/zh-CN/services/playfab/multiplayer/servers/using-playfab-servers-to-host-games.md)
- [多人游戏会话模板](/zh-CN/services/xbox-services/multiplayer/mpsd/concepts/live-session-templates.md)
- [PlayFab Unreal GSDK 插件概览](/zh-CN/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/index.md)
