服务器浏览器
快速开始使用 Server Browser,并探索各种类型的示例场景。
Server Browser 是一项托管服务,用于 部署 和 持久化 服务器:
帮助玩家搜索并加入合适的服务器 ,基于容量、延迟或游戏参数;
预热新服务器 以便在全球范围内大规模服务玩家并避免令人沮丧的排队;
简化服务器运维 包括更新、重启、持久化、网格化等。
如果你希望根据严格规则匹配玩家,而不允许选择服务器?可以考虑 匹配.
✔️ 准备工作
测试此服务完全免费,无需信用卡。
免费额度允许在我们的共享测试集群上每次重启后最多运行 3 小时。
本教程假定您已经:
已在 Edgegap 上发布您的服务器应用(Unreal Engine, Unity),
已从游戏客户端成功连接到您在 Edgegap 上的服务器。
功能与流程

Server Browser 提供两个主要功能:
服务器浏览器 与游戏客户端配合以:
发现并找到合适的服务器实例,查看槽位,并预留可用容量。
在实例槽位中预留座位,获取连接信息,并连接到服务器。
使用以下方式在部署中验证玩家连接: 联邦身份认证.
更新实例槽位的可用容量和/或元数据,以修改发现条件。
服务器浏览器 (可选)与扩缩容策略配合以:
按区域和/或其他条件监控可用服务器实例、槽位和容量。
通过预热或即时扩缩容部署服务器以增加容量。
使用针对演示、更新、测试、QA、锦标赛等的特殊策略自动化运维。
发布后, 你的 Server Browser 需要全天候 24/7 运行 以确保全球玩家都能加入服务器。
▶️ 开始浏览
了解服务器/玩家生命周期及其职责,以确保高效使用服务器。
认证
所有请求必须发送一个 Authorization(授权) HTTP 头并包含您的密钥 认证令牌:
请将您的令牌保密并妥善保存!Edgegap 员工绝不会向您索要令牌。
Server Browser 会自动生成两种令牌:
服务器令牌 - 需要用于 服务器 API 方法,可 作为应用版本变量注入.
授予对所有 API 方法的访问权限,适用于测试、DevOps 或自定义编排。
客户端令牌 - 需要用于 监控 API 和座位预留 API 供游戏客户端使用。
我们建议将此令牌存储在第三方密钥存储中,以便更轻松地轮换令牌。
发现实例
新 部署 必须创建一个新的实例 在初始化时,用于跟踪新增容量。
请参阅 服务器浏览器 了解扩缩容策略并自动启动部署。
所需信息 每个服务器实例包括:
在初始化实例时定义至少一个槽位,
服务器连接详情 - URL、IP、端口信息和位置。
可选的自定义元数据参数 用于玩家筛选、排序和浏览;例如:
槽位信息 - 队伍容量和队伍特定元数据(例如队伍名称),
名称和标签 - 可自定义、唯一、可读且可搜索的标识;
兼容性数据 - 服务器版本或支持的客户端版本;
延迟限定信息 - 城市和区域标识符,以及分配的 Ping 信标 详情;
游戏参数 - 关卡/场景/地图、游戏模式、难度、所用模组;
任何其他可帮助玩家筛选并找到合适服务器的自定义参数。
以上元数据参数仅为示例,你可以根据需要定义任意数量的参数。
要序列化嵌套对象,可以尝试将其访问路径编码到键中,例如 "object.child.property".
服务器可以 随时更新实例或槽位元数据 以修改其可发现性条件。更新元数据时,所有索引键都必须提供有效值(即使未修改)。
服务器实例必须定期发送保活心跳 以验证其持续可用性,并防止玩家加入崩溃或离线的服务器。在配置的过期时间内未收到心跳,将自动删除该实例及任何待处理的座位预留。
分配容量
实例和槽位容量可通过两种方式分配,可单独使用或组合使用:
我们建议从 服务器浏览器 开始,因为它更简单。
自动分配预留
如果你希望 自动选择服务器,基于区域容量。
玩家可以创建自动分配预留,只需提供玩家 ID 和扩缩容策略名称。Server Browser 会自动找到一个具有足够可加入容量的槽位的实例并预留座位,同时立即返回实例连接详情。
如果此预留没有合适的实例槽位,响应:
状态码指示该策略是否正在扩容 以及是否会增加更多容量,
响应头
Retry-After表示重试前的等待时间(秒),如果可重试。
预留完成后,你可以跳到 服务器浏览器.
搜索与浏览
如果你希望 向用户显示服务器列表,并允许自定义预留.
玩家可以列出服务器实例并 对结果进行分页浏览 以找到他们想要加入的服务器。
实例和槽位可以使用内置参数或 索引元数据:
request_id
字符串
✅
❌
total_joinable_seats, total_available_seats
整数
✅
❌
name
字符串
❌
✅
available_seats, reserved_seats
整数
❌
✅
created_at, updated_at
字符串
✅
✅
metadata.{index} (自定义)
字符串, 整数, 浮点数, 布尔值
✅
✅
可用的筛选运算符取决于被筛选属性的数据类型:
字符串
eq 或 ne 或
lt 或 le 或
gt 或 ge 或
包含
整数, 浮点数
eq 或 ne 或
lt 或 le 或
gt 或 ge
布尔值
eq 或 ne
按区域和/或城市元数据进行筛选,以便在测量服务器延迟之前缩小选择范围。
了解基于游标的 服务器浏览器 以便让用户获取更多结果。
预留座位
在加入服务器之前,需要先进行座位预留,以确保实例提供足够的可用容量。预留可以包括一组玩家或单个玩家。
联邦身份认证:玩家必须在其预留中提供唯一的第三方玩家 ID。当他们之后发送相同的 ID 时, 服务器浏览器 将允许服务器验证其身份。
一旦预留成功完成(200 OK),玩家应立即尝试连接。未确认的 预留会在 30 秒后过期(可配置),除非 由你的服务器确认。
超过槽位可加入座位容量的预留将被自动拒绝 (409 Conflict)。可加入座位是指尚未被其他玩家预留的所有可用座位。
服务器可以强制更改任何槽位的容量,并添加、删除或更新任何槽位。 如果任何待处理预留超出新的槽位可用容量,则该给定槽位的所有预留都将被移除。
连接到服务器
一旦玩家找到合适的实例,他们 从中获取所需的连接详情 (URL 或 IP, 外部端口)。一旦完成座位预留, 玩家便可以连接到你的部署中的游戏服务器并传递其玩家 ID.
要 从 PIE(编辑器)连接 在开发和测试期间,按波浪号键 ~ 并输入 open {URL}:{port} 并等待编辑器加载地图。
如果连接失败或出现黑屏,请查看我们的 故障排查指南.
要 将你的 Unity 编辑器连接到 或 游戏客户端 你的云部署,请输入:
部署 URL 指向服务器 IP,通常在
NetworkManager组件中。外部端口 映射到 服务器的内部监听端口,通常在 Transport 组件中。
如果发生连接超时或其他问题,请查看我们的 故障排查指南.
要验证新的连接, 你的服务器必须发送批量预留确认 请求,其中包含所有新玩家的 ID,并在确认响应中接收信息:
将已接受的玩家预留分配到其首选槽位,
将已过期的玩家预留分配到其首选槽位,
未知玩家 ID 列表。
你的 服务器可以决定如何处理每一组玩家 以及是否允许或踢出/封禁已过期或被拒绝的用户。每个 实例的槽位都必须立即更新新的可用座位数 以确保未来的预留不会超过槽位容量。
放弃服务器
当玩家离开时,你的服务器必须增加分配槽位的可用座位容量。
如果你的游戏设计允许重新连接期,你的服务器可以在更新槽位之前等待。
阅读关于 持久化 以防止令人沮丧的持久服务器回滚。
🚀 自动扩缩容
Server Browser 兼容多种不同的自动扩缩容方式:
预热方式 - 严格使用 Server Browser 扩缩容策略启动服务器,
即时方式 - 通过 匹配 和 使用 Server Browser 填充,
自定义自动扩缩容系统 - 通过自定义游戏后端和 使用 Server Browser 填充.
以下指南将重点介绍 使用扩缩容策略进行预热 作为主要方法。
了解如何在 Unreal Engine, Unity,或者 使用 API 以可靠地管理生命周期。
监控容量
扩缩容策略会持续刷新你的服务器实例列表(已发现的部署),并每隔 monitoring_interval 。每个策略都需要使用与 筛选语法 相同的筛选条件——按区域、容量或其他条件。
你配置的 minimum_active_instances 数量可被视为以下任一项:
固定容量 你希望始终保持运行的部署数量,
预热待机 用于掩盖初始化延迟的部署缓冲。
固定容量
为以下类型的游戏保持固定数量的活跃服务器: 持久化,尤其是在这类游戏允许玩家自行预置的情况下 持久化.
这种策略配置有时也用于质量保证、锦标赛、封闭 Alpha、发行商演示或其他有限容量的活动和运维。
扩缩容策略可帮助你自动重启并即时回收崩溃的服务器。
预热待机
在玩家需求到来之前启动服务器,如果:
你正在发布大型版本,并预计短时间内会有大量玩家涌入,
或者服务器初始化需要超过 30 秒(不包括部署时间),
或者游戏实现了需要分层或环形网络依赖的网格化策略。
部署服务器
当受监控的服务器实例数量个 低于配置的最小活跃实例数时,新部署将自动启动。所有部署都会立即请求,并在 deployment_registration_period 经过后,每个监控间隔都会无限重试。
请确认新的部署 会执行自动发现并创建实例 并正确匹配你的策略筛选条件,或者 你的策略可能会无限循环并创建大量未使用的部署!
策略可通过以下方式启动部署: 私有舰队 (通过 Overflow 到 Cloud)或直接到 Cloud。
可用参数包括(参见 API 规范):
应用和版本 - 构建版本、资源和其他编排参数,
用户 - 一组用于首选的地理坐标 服务器部署位置,
私有主机 ID - 云端可留空,或指定所需区域内的主机,
标签 - 使用策略名称作为标签,以便日后查找通过此策略启动的部署,
环境变量 - 向服务器传递自定义参数和密钥,
Webhook - 将部署生命周期事件通知你的游戏后端(或匹配器),
需要缓存位置 - 如果你只希望在已缓存的位置获得更快的部署。
示例策略
可根据需要测试并修改这些策略。大多数游戏会使用多个策略。
一种简单策略,用于始终保留一台服务器用于测试。
在发布前提前启动 10 倍部署,以应对需求。按各区域复制。
每个区域会在可用容量低于阈值时增加部署。
每位服务器所有者一个策略,传入用于服务器认证的自定义密码。
每个服务器组一个策略。游戏后端启动一个主节点,由它生成副本。每个节点都会读取注入的网格组 ID,并搜索其他节点进行组网。
⚙️ 配置
Server Browser API 由你在创建新的(或快速重启)Server Browser 时指定的 JSON 配置生成。你可以指定服务器和槽位过期时间,以及自定义元数据:
为获得最佳性能,请避免为未用于筛选或排序的元数据指定索引。未索引的参数仍可通过服务器实例或槽位详情 API 方法进行设置和读取,见 📗 API.
☁️ 托管集群
Server Browser 由 Edgegap 便捷地全天候 24/7 托管和管理。
选择最适合你目标的托管方案:
免费集群(共享) 用于测试所有功能并探索与您的设计的协同效应,
会在 3 小时后自动关闭,需要重启才能继续测试。
私有集群 (专用) 以确保为您的生产需求提供稳定的环境,
选择您的区域并为实时游戏获得 24/7 支持,以便自信发布。
私有集群等级
我们目前提供 3 个私有集群等级 以满足每个人的需求:
最适合用于
爱好者, 独立开发者
商业发布
高流量上线
资源
1 vCPU + 2GB 内存
6 vCPU + 12GB 内存
18 vCPU + 48GB 内存
冗余
1 个虚拟节点
3 个虚拟节点
3 个虚拟节点
限流(请求/秒)
200
750
2,000
价格,每小时
$0.0312
$0.146
$0.548
价格,30 天 (持续使用)
$22.464
$105.12
$394.56
只需点击一次即可升级到私有集群,享受由 Edgegap 团队维护的高可用托管,并为公开发布的游戏提供 24/7 实时支持。
你的实例资源需求将取决于以下因素:
玩家数量 - 更多玩家会产生更多 API 请求,
每位玩家的请求数量 - 更快的重试会增加服务负载并消耗资源,
服务器数量 - 更多服务器会导致存储更多数据并产生更多 API 请求,
客户端重试回退逻辑 - 使用带抖动的退避重试有助于分散流量峰值,
平均对局时长 - 更短的会话需要更频繁地与服务器浏览器交互。
我们的集群使用配备 AMD/Intel CPU 的云主机,主频为 2.4 - 3.2 GHz。
📗 API
考虑为以下用途使用我们的 SDK Unreal Engine 或 Unity 以便借助预置示例快速上手。
游戏客户端和专用服务器会在其生命周期内向 Server Browser 发送 API 请求。
Unity/Android - 考虑 使用原始字符串插值 以防止对硬编码 JSON 的代码剥离。
Swagger Web UI:部署您的服务将生成一个 OpenAPI 规范和一个便捷的网页 UI。在浏览器中打开该 URL 以查看和测试所有 API 端点,并审查示例负载。
导入 API 规范到 Scalar API Web 客户端 或 Swagger Editor 以查看详情。
速率限制
为保护你的集群不超过突发容量并避免崩溃,我们限制每个客户端公共 IP 地址每秒可发送的请求数量。
该限制由以下项配置: 服务器浏览器 参数 rate_limits.per_client_ip.
如果你的游戏客户端在收到响应后不重试请求 429 请求过多 某些玩家在 短时突发和流量高峰期间可能无法加入服务器。
我们建议在开发期间使用更低的速率限制(1 req/s)测试应用行为。
负载测试
在类似生产环境中进行负载测试会产生部署托管成本。请参见各层级对应的资源和价格 我们的定价页面.
使用 私有集群 用于压力测试。 免费实例严格仅限于开发测试。
在设计负载测试时, 请考虑真实的玩家行为模式:
✅ 玩家逐步加入游戏,在数小时内逐渐提升请求/秒。
❌ 所有玩家协调一致,在完全相同的一秒内访问 API。
✅ 玩家在重试之间等待的时间逐步增加(例如 1s-5s-10s-10s)。
❌ 所有玩家在收到后立即重试 429 请求过多 响应。
✅ 大多数玩家会在较短时间内(10-60 秒)收到分配并停止轮询。
❌ 所有玩家在收到分配后仍会继续轮询一段固定时间。
✅ 大多数玩家在重新开始新会话之前会先完成当前游戏(需要一些时间)。
❌ 所有玩家在收到服务器分配后立即重新开始新的会话。
✅ 峰值流量每天持续约 6 小时,之后部分时区的流量会下降。
❌ 峰值流量全天 24 小时持续,所有玩家日夜不停地玩。
负载下的行为
如果任何客户端达到配置的按 IP 速率限制,它们将收到一个 429 请求过多 响应,并应以逐渐增加的回退间隔进行重试。
如果缩放策略触发的部署数量超过你组织允许的 req/s 限制,你的服务器浏览器将每个监控间隔自动重试,并使用基于计划部署数量的加权轮询策略,尝试在所有缩放策略之间均匀分配可用的部署配额。
分页
Server Browser 提供游标分页,以按特定顺序增量获取筛选后的数据。 这种方式在获取更多结果时需要传入游标(起始点)和页大小(响应项目数量),而不是传统的 limit-offset 分页。
结合我们为游戏服务器元数据开发的专有数据库索引系统,游标分页为筛选高度动态的数据提供了快速、一致且灵活的用户体验。
我们的目标是让用户在第一页就找到合适的服务器。为获得最佳体验,我们建议显示前几页的缓存结果,并且只在用户点击搜索时刷新结果。
🔖 更新日志
语义化版本控制
我们的开发者工具和托管服务使用官方 语义化版本控制,表明哪些更新是✅安全的(次要、补丁),哪些可能包含⚠️破坏性更改(主要)。
一旦某个版本发布,它将永远不会被修改/更改.
Server Browser 的最新版本是 1.0.0 . 请留意 更新和公告.
最后更新于
这有帮助吗?

