> For the complete documentation index, see [llms.txt](https://docs.edgegap.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.edgegap.com/zh/learn/bian-pai/ping-beacons.md).

# Ping 信标

使用 Ping Beacons，避免与远距离地区的玩家匹配，并改善玩家体验。

## 🟢 连接质量

服务器连接质量因玩家而异，并受到许多因素影响，包括：

* wifi 信号强度（如果使用无线或移动网络），
* 互联网服务提供商状况，
* 本地网络状况，
* 所使用的网络协议，
* 虚拟专用网络（VPN）的使用，
* 或特定国家/地区限制。

为了尽量降低玩家 ping，并 **提供最佳的玩家匹配** 并使 [部署](/zh/learn/bian-pai/deployments.md#server-placement) 达到最优，游戏客户端 **利用 Ping Beacons 实时测量** 到全球多个主要网络节点的延迟。测量真实的数据包往返时间会考虑上述所有因素，并在任意时刻提供最准确的指标。

请注意， **较高的 beacon ping 并不等同于较高的服务器 ping**，因为服务器的分布密度比 beacons 更高。Beacon 数量会实时平衡，以获得最佳覆盖、尽量减少所需数据传输，并缩短完成测量所需的时间。

除了 Edgegap 的监控之外，我们还建议 **实施您自己的客户端分析** 以便在匹配时跟踪玩家人口统计和连接质量，从而尽快发现、分流并解决问题。

## 🗼 关于 Ping Beacons

从以下位置获取玩家可直接 ping 的 beacon 列表：

* Matchmaker [深入了解](/zh/learn/pi-pei/matchmaker-in-depth.md#matchmaking-api) 从游戏客户端，
* Edgegap API [端点 /locations/beacons](https://docs.edgegap.com/api/#tag/Locations/operation/location-beacon-list) 使用 [Edgegap API 令牌](https://app.edgegap.com/user-settings?tab=tokens) （来自您的后端）。

Ping beacons 可同时用于多种用途：

* 通过以下方式防止高延迟匹配 [#measuring-round-trip-time](#measuring-round-trip-time "mention") 自动地。
* 提供一个 [#hub-selection-ui](#hub-selection-ui "mention") 让玩家挑选最喜欢的 hub，
* 提供一个 [#region-selection-ui](#region-selection-ui "mention") 让玩家排除远距离地区，

{% hint style="info" %}
**请求过多 429** - 为确保平台稳定性，我们 **对您的组织实施速率限制，** **40 次请求/秒** 针对该 API 端点。请实现一个 [#active-cache](#active-cache "mention") 以防止触发速率限制。
{% endhint %}

{% hint style="success" %}
[#measuring-round-trip-time](#measuring-round-trip-time "mention") 使用 **ICMP、UDP 或 TCP ping 不受速率限制**.
{% endhint %}

## 🗺️ 区域选择界面

通过在游戏 UI 中提供一个可启用或禁用的区域列表，防止用户与特定区域中的其他用户进行匹配。

**自动禁用高延迟区域：**

* 列出所有可用的 beacons，
* 执行 [#measuring-round-trip-time](#measuring-round-trip-time "mention") 对所有 beacons 的
* **如果针对所有 beacons 测得的延迟超过给定阈值，则禁用该区域。**

您的阈值取决于游戏设计的具体情况，我们建议在延迟低于 200ms（毫秒）的区域进行匹配。

{% hint style="info" %}
允许玩家覆盖 [部署](/zh/learn/bian-pai/deployments.md#server-placement) 在提供信标 IP 时 [匹配](/zh/learn/pi-pei/matchmaker-in-depth.md#endpoint-tickets) 注入的变量（Injected Variables） [部署](/zh/docs/api/zhuan-yong-fu-wu-qi.md#deployments)。为获得最佳玩家体验，请警告玩家这可能由于服务器位于远程位置而导致延迟增加。
{% endhint %}

一些玩家对所有信标的网络延迟很高，原因是 互联网服务提供商[^1] 问题或连接较慢（例如无线/移动）可能导致延迟并降低其他人的游戏体验。为缓解此问题：

* 逐步扩大允许的最大延迟和差异（参见 [高级示例配置](/zh/learn/pi-pei.md#advanced-example)),
  * 延迟高的玩家可能需要比平时更长时间才能找到匹配。
* 或者，允许玩家通过手动区域选择来覆盖测量，只为玩家选择的区域发送伪造的延迟值（例如为快速匹配设置为25毫秒），
  * 这可能会对该玩家的队友和对手的游戏体验产生负面影响。

{% hint style="info" %}
**高信标延迟并不总是导致高服务器延迟**。部署点比信标地点更多。信标会实时编排以优先考虑全球覆盖和可靠性。
{% endhint %}

{% hint style="success" %}
参见 [匹配](/zh/learn/pi-pei.md) 用于 **使用我们的 SDK 进行自动化延迟测量**.
{% endhint %}

## 📍 Hub 选择界面

有些游戏玩家更喜欢能够从完整的位置列表中进行选择。

**自动禁用高延迟 Hub：**

* 列出所有可用的 beacons，
* 执行 [#measuring-round-trip-time](#measuring-round-trip-time "mention") 对所有 beacons 的
* **如果测得延迟超过给定阈值，则禁用 hub，**
* 在游戏 UI 中使用 City beacon 属性标识已启用的 Hub。

您的阈值将取决于游戏设计的具体情况，但我们通常建议在延迟低于 150ms（毫秒）的 Hub 中进行匹配。

我们还建议在 UI 中使用“Hub”这个名称，或使用其他 **不会暗示这些是可用的唯一服务器位置的名称**. Edgegap 在全球 615+ 个物理位置和 17+ 家数据中心提供商之间编排游戏服务器，以确保部署到理想位置。

{% hint style="info" %}
允许玩家覆盖 [部署](/zh/learn/bian-pai/deployments.md#server-placement) 在提供信标 IP 时 [匹配](/zh/learn/pi-pei/matchmaker-in-depth.md#endpoint-tickets) 注入的变量（Injected Variables） [部署](/zh/docs/api/zhuan-yong-fu-wu-qi.md#deployments)。为获得最佳玩家体验，请警告玩家这可能由于服务器位于远程位置而导致延迟增加。
{% endhint %}

一些玩家对所有信标的网络延迟很高，原因是 互联网服务提供商[^1] 问题或连接较慢（例如无线/移动）可能导致延迟并降低其他人的游戏体验。为缓解此问题：

* 逐步扩大允许的最大延迟和差异（参见 [高级示例配置](/zh/learn/pi-pei.md#advanced-example)),
  * 延迟高的玩家可能需要比平时更长时间才能找到匹配。
* 或者，允许玩家通过手动区域选择来覆盖测量，只为玩家选择的区域发送伪造的延迟值（例如为快速匹配设置为25毫秒），
  * 这可能会对该玩家的队友和对手的游戏体验产生负面影响。

{% hint style="info" %}
**高信标延迟并不总是导致高服务器延迟**。部署点比信标地点更多。信标会实时编排以优先考虑全球覆盖和可靠性。
{% endhint %}

{% hint style="success" %}
参见 [匹配](/zh/learn/pi-pei.md) 用于 **使用我们的 SDK 进行自动化延迟测量**.
{% endhint %}

## 🌡️ 测量往返时间

在游戏开发中，“ping”和“latency”这两个术语通常都指 [数据包往返时间](https://www.cloudflare.com/learning/cdn/glossary/round-trip-time-rtt/).

参见 [/pages/f56fbf42014b0e552701bac3a13d3792b3c70ce0#id-5.-game-integration](https://docs.edgegap.com/zh/learn/bian-pai/pages/f56fbf42014b0e552701bac3a13d3792b3c70ce0#id-5.-game-integration "mention") 用于自动 ping 测量：

* Unity [开发者工具](/zh/unity/developer-tools.md#software-development-kit):
  * [使用 Unity Package Manager 免费安装包](https://github.com/edgegap/edgegap-unity-sdk),
  * [探索我们的入门指南和完整示例](/zh/unity/pi-pei.md).
* 虚幻引擎 [开发者工具](/zh/unreal-engine/developer-tools.md#integration-kit):
  * [阅读文档](https://egik.betide.studio/) 由 Betide Studios，
  * [从 Fab Marketplace 安装](https://www.fab.com/listings/ff17ad88-12a1-49cf-9a41-31695ed11e16) （个人使用免费），
  * [导入简单示例蓝图](https://blueprintue.com/blueprint/m33u1okj/) （匹配）并根据你的需要进行自定义。

延迟测量过程的详细概述见 [Matchmaker](/zh/learn/pi-pei/matchmaker-in-depth.md):

<figure><img src="https://3334189208-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsR0dHSFv9ymoC0DO5G8J%2Fuploads%2Fn6ke8Ed6jijjdlPQ4CfP%2Fimage.png?alt=media&amp;token=c85c70b2-73af-4980-a962-488393d264e6" alt=""><figcaption></figcaption></figure>

## ⏰ 高可用性

{% hint style="danger" %}
信标会在实时中自动重新调整规模——添加/移除/替换现有信标。您的客户端和后端应考虑到这一点并 **在每轮匹配之前重新加载信标列表**.
{% endhint %}

## 🧠 活跃缓存

**如果不使用** [**Matchmaker**](/zh/learn/pi-pei.md) （例如 Advanced Matchmaker 用户），我们建议在大规模发布前实现额外的扩展性保障。 **创建您自己的游戏后端服务** 该服务会在内存中维护一个集中式缓存，向游戏客户端返回 beacon 位置，而无需对每个客户端请求都使用我们的 Beacons List API。

此服务应主动 **每 60 秒发起一次 API 请求来更新 beacon 列表。**

[^1]: 互联网服务提供商（ISP）
