分配多人会话
借助 PlayFab 多人游戏服务器 2.0,你可以使用 RequestMultiplayerServer API 分配多人服务器应用程序的实例。 通常,此 API 由你自己的服务(可能是匹配服务或大厅服务)调用,并使用为特定标题配置的 PlayFab 开发者机密密钥。有关机密密钥的详细信息,请参阅机密密钥管理。 将玩家聚集在一起并分配服务器的典型模式:- 客户端收集网络 QoS 信息。
- 客户端与自定义匹配服务交互,或通过社交邀请聚集。
- 自定义匹配服务使用按优先级排序的区域列表为群组分配会话。
- BuildID — 要分配的特定服务器生成。
- SessionID — 会话的标识符。这是由调用方生成的 GUID 字符串。针对同一逻辑会话对此 API 的重试应重复使用相同的标识符。这可以缓解调用方重试行为创建不必要服务器的可能性。
- SessionCookie — 通过游戏服务器 SDK 在激活时传达给已分配会话的任意数据。此字段的典型用途是传达游戏服务器用来对客户端进行身份验证的共享密钥。数据必须小于 4 KB。
- PreferredRegions — 用于分配服务器的有序区域列表。我们建议使用从客户端设备收集的网络 QoS 度量作为对区域进行排名的主要因素。
- 服务器的 IPv4 地址。
- TCP/UDP 端口映射(请参阅将客户端连接到游戏服务器)。
- 服务器的区域。
你可以使用 MpsAllocatorSample(在此处找到),在游戏开发期间轻松分配游戏服务器
客户端分配
多人服务器成本高昂且性能强大。默认情况下,你只能使用 PlayFab 开发者机密密钥从你自己的受信任服务请求多人服务器。 但是,直接从玩家设备分配服务器可以节省实现服务到服务调用的成本,并在某些情况下很有用。 若要启用客户端分配:- 从左侧菜单中选择设置。
- 选择 API 功能选项卡。
- 然后激活允许客户端启动游戏选项。
调试已部署的多人服务器
你可能希望在游戏服务器部署在 Azure 上时远程调试它。使用 Visual Studio,目前需要在容器中安装并配置 Visual Studio 远程调试工具。以下过程将启用不安全的、未经身份验证的调试。
- 获取 VS2017 远程调试工具:
- 将这些工具包含在游戏服务器资产包中。
- 作为在 Game Manager 中或使用 Entity API 创建服务器生成的一部分,将端口 4022 TCP 配置为调试端口。
- 你需要在容器中运行
msvsmon以启用远程调试。常见模式是将 CMD 脚本指定为 Game Start 命令,并使用命令行参数来启动msvsmon,同时启动游戏服务器可执行文件。 - 使用以下命令执行一次
msvsmon:
- 使用以下标志执行
msvsmon(如下所示)。
我们建议明确列出端口,以便当端口已被占用时,你的程序可以处理进程退出代码,而不是绑定到未打开的随机端口。
- 分配你的游戏服务器。
- 使用从分配调用返回的外部调试端口,尝试通过 VS 进行调试。
