将客户端连接到游戏服务器

PlayFab 游戏服务器是容器化应用程序。 当游戏服务器部署到 Azure 时,它们的网络环境经过虚拟化,游戏服务器将不能直接访问其可通过 Internet 访问的 IP 地址。

使用 GetAdaptersInfo (Windows) 或 GetIfAddrs (Linux) 的游戏服务器将使用通过网络地址转换 (NAT44) 配置的不唯一的 IP 地址发现一个单一网络适配器。

这种网络虚拟化和 NAT 用法允许游戏服务器即使在底层 Azure 基础结构发生更改时也能保持连接。 所有游戏服务器都具有 IPv4 连接,将来会添加 IPv6 连接。

注意

所有游戏服务器都具有 IPv4 连接,将来会添加IPv6 连接。

PlayFab 游戏服务器 - 网络虚拟化

您可以配置服务器部署来将多个游戏服务器实例打包在单个 虚拟机上。 大多数情况下,这不会 修改网络环境,因为每次容器化都允许每个游戏服务器实例有独立的 IP 地址和 TCP/UDP 端口空间。

但是,单个虚拟机上的所有 实例都共享物理网络基础结构,并且可能导致网络争用。

在测试高密度配置时,测试典型征用不会导致不可接受的游戏玩法问题非常重要。

不同的虚拟机大小和操作系统是用不同的带宽级别设置的。 要查看为某一特定 SKU 设置的带宽,请参阅 Azure 的吞吐量文档。

游戏服务器是使用服务到服务呼叫通过 PlayFab Server API 分配的。 客户端连接所需的连接信息通过这些服务和客户端传递,而它们通常使用 TCP 或 UDP 套接字驱动到游戏服务器的直接连接。 通常情况下,游戏服务器将侦听已知的 UDP 和游戏开发者选择的 TCP 端口。

游戏客户端需要您的游戏服务器的面向 Internet 的 IP 地址以便连接它们。 客户端还需要端口转发信息以允许服务器侦听的已知端口可通过 Azure 网络虚拟化设备寻址。

PlayFab 游戏服务器 - 连接游戏客户端

  • 公用 IPv4 地址
  • 开发者提供的端口(按名称)到面向 Internet 的端口的映射。
游戏服务器协议名称 协议 面向 Internet 的端口
多人游戏 UDP 3098
调试器 TCP 23222

为游戏服务器启用 TCP/UDP 端口

通过 Game Manager 或实体 API CreateBuild 提供的端口要求允许游戏客户端联系虚拟机。 它还会在常驻操作系统上配置防火墙以在您指定的端口上启用网络流量。

多人游戏服务器使用的面向 Internet 的公共端口和 IP 地址

多人游戏 VM 使用的 IP 地址是从 Azure VM 使用的 IP 地址的常规池中提取的。 这些 IP 指定为 AzureCloud 服务标记。 有关详细信息,请参阅 本地服务标记。 所有 VM 对游戏流量使用 30000-31000 的端口范围,将 50000-55000 用于远程访问 (SSH/RDP) 流量。