服务器浏览器
欢迎来到 Edgegap Server Browser 内测版。 希望您喜欢预览我们新服务的机会,并通过在 Discord 的圆桌讨论帮助塑造它的未来。
Server Browser 是一项托管服务,适用于 部署 和 持久化 服务器:
帮助玩家搜索并加入合适的服务器 ,依据容量、延迟或游戏参数;
预热新服务器 以便大规模服务全球受众,并避免令人沮丧的排队;
简化服务器运维 包括更新、重启、持久化、网格化等。
想在不允许玩家自行选择服务器的情况下,依据严格规则匹配玩家吗?请考虑 匹配.

✔️ 准备
流程与层级

Server Browser 提供两项主要功能:
服务器浏览器 与游戏客户端一起,用于:
发现并找到合适的服务器实例,查看槽位,并预留可用容量。
在实例槽位中预留座位,获取连接详情,并连接到服务器。
使用以下方式验证来自部署的玩家连接: 联合身份.
更新实例槽位的可用容量和/或元数据,以修改发现条件。
服务器浏览器 (可选)与扩容策略一起,用于:
监控可用的服务器实例、槽位、容量——按区域和/或其他条件。
通过预热或即时扩容部署服务器以增加容量。
使用针对演示、更新、测试、QA、锦标赛等的特殊策略自动化运维。
发布后, 你的服务器浏览器将需要 24/7 运行 以确保全球各地的玩家都能加入服务器。
▶️ 开始浏览
了解服务器/玩家生命周期及其职责,以确保高效使用服务器。
验证
Server Browser 会自动生成两种类型的令牌:
服务器令牌 - 必需用于 Server API 方法,可 作为应用版本变量注入.
授予对所有 API 方法的访问权限,适合测试、运维或自定义编排。
客户端令牌 - 必需用于 监控 API 和 座位预留 API 由游戏客户端使用。
我们建议将此令牌存储在第三方密钥管理服务中,以便更轻松地轮换令牌。
发现实例
新 部署 初始化时必须创建一个至少包含一个槽位的新实例。
查看 服务器浏览器 了解扩容策略并自动开始部署。
可选的自定义元数据参数 用于玩家筛选、排序和浏览。
示例:
槽位信息 - 队伍容量和队伍特定元数据(例如队伍名称),
名称和标签 - 可自定义、唯一、易读且可搜索的标签;
连接详情 - URL、IP、外部端口或其他参数;
兼容性数据 - 服务器版本或支持的客户端版本;
延迟限定条件 - 城市和区域标识,以及分配的 Ping 信标 详情;
游戏参数 - 关卡/场景/地图、游戏模式、难度、使用的模组;
任何其他自定义参数,帮助玩家筛选并找到合适的服务器。
上面的元数据参数仅为示例,你可以定义包括上述在内的任何参数。所有元数据参数都是可选的,某些实例可能不需要定义所有参数。
元数据支持字符串键和值,值可以包含字符串、数字、布尔值或字符串数组。
要序列化嵌套对象,请尝试在键中将其访问路径编码为 "object.child.property".
服务器可以 随时更新实例或槽位元数据 以修改其可发现性条件。
服务器实例必须定期发送保活心跳 以验证其持续可用性,并防止玩家加入已崩溃或离线的服务器。若在配置的过期周期内缺失心跳,将自动删除实例及任何待处理的座位预留。
搜索与浏览
玩家可以列出服务器实例并 分页浏览结果 以找到想要加入的服务器。要显示 ping(延迟)数据,请读取每个实例的 Ping 信标 详情并 测量延迟.
实例和槽位可按可加入座位或 已索引的元数据参数进行筛选.
"joinable_seats"
eq 或 ne 或
lt 或 le 或
gt 或 ge
"string"
(元数据)
eq 或 ne 或
lt 或 le 或
gt 或 ge 或
contains
"int" ,或 "float"
(元数据)
eq 或 ne 或
lt 或 le 或
gt 或 ge
"bool"
(元数据)
eq 或 ne
可按区域和/或城市筛选,以便在测量到服务器延迟之前缩小选择范围。
了解基于游标的 服务器浏览器 以便让用户获取更多结果。
预留座位
在加入服务器之前,需要进行座位预留,以确保该实例提供足够的可用容量。预留可以包含一组玩家或单个玩家。
超过槽位可加入座位容量的预留将被自动拒绝 (409 冲突)。可加入座位是指尚未被其他玩家预留的任何可用座位。
联合身份:玩家必须在其预留中提供唯一的第三方玩家 ID。随后发送相同的 ID, 服务器浏览器 即可让服务器验证其身份。
一旦预留成功创建(200 OK),玩家应立即尝试连接。待处理的 预留将在 30 秒后过期,除非它们已被 你的服务器确认。
服务器可以强制更改任何槽位的容量,添加、删除或更新任何槽位。 如果任何待处理预留超过新的可用槽位容量,该槽位的所有预留都将被移除。
连接到服务器
一旦玩家找到合适的实例,他们可以 从元数据中获取所需的连接详情 (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 经过后无限重试。
验证新的部署是否 执行自动发现并创建实例 正确匹配你的策略筛选器,或者 你的策略可能会无限循环并创建大量未使用的部署!
为你的策略定义部署请求时,我们使用标准部署参数,允许在私有舰队中部署(可溢出到云端)或直接部署到云端:
应用和版本 - 构建版本、资源及其他编排参数,
用户 - 一组单独的坐标,用于首选 服务器放置,
私有主机 ID - 云端时留空,或指定所需区域内的主机,
标签 - 用策略名称打标签,以便日后查找通过该策略启动的部署,
环境变量 - 向服务器传递自定义参数和密钥,
webhook - 将部署生命周期事件通知你的游戏后端(或匹配器),
要求缓存位置 - 如果你只希望在缓存位置中获得更快的部署。
示例策略
按需测试和修改这些策略。大多数游戏会使用多个策略。
⚙️ 配置
Server Browser API 是根据你在创建新的(或快速重启的)Server Browser 时指定的 JSON 配置生成的。你可以指定服务器和槽位过期时间,以及自定义元数据:
为了获得最佳性能,请避免为未用于筛选或排序的元数据指定索引。未索引的参数仍然可以通过服务器实例或槽位详情 API 方法进行设置和读取,参见 📗 API.
☁️ 托管集群
Server Browser 由 Edgegap 以 24/7 全天候方式便捷托管和管理。
请选择最适合你目标的托管选项:
私有集群等级
一键升级到私有集群,即可享受由 Edgegap 团队维护的高可用托管,并为公开发布的游戏提供 24/7 实时支持。
你的实例资源需求取决于以下因素:
玩家数量 - 玩家越多,API 请求越多,
每位玩家的请求次数 - 更快的重试会增加服务负载并消耗资源,
服务器数量 - 服务器越多,存储的数据和 API 请求越多,
客户端重试回退逻辑 - 使用带抖动的退避重试有助于分散流量峰值,
平均对局时长 - 更短的会话需要更频繁地与服务器浏览器交互。
📗 API
游戏客户端和专用服务器在其生命周期中会向 Server Browser 发送 API 请求。
导入 API 规范到 Scalar API Web 客户端 或 Swagger Editor 以查看详情。
分页
Server Browser 提供游标分页,以特定顺序逐步获取筛选后的数据。 这种方法要求在每次获取更多结果时发送游标(起始点)和页面大小(响应项数量),不同于传统的 limit-offset 分页。
结合我们为游戏服务器元数据开发的专有数据库索引系统,游标分页为筛选高度动态的数据提供了快速、一致且灵活的用户体验。
我们的目标是让用户在第一页就找到合适的服务器。为了获得最佳体验,我们建议显示前几页的缓存结果,并且只在用户点击搜索时刷新结果。
🔖 更新日志
Server Browser 的最新版本是 0.0.5 。请留意更新和公告。
0.0.5(2026 年 3 月 18 日)
0.0.4(2026年1月5日)
进入公开测试,新增 服务器实例和槽位的筛选与排序!
0.0.3(2025年11月28日)
Server Browser 服务的初始版本已在封闭测试中发布。
列出服务器、管理容量并获取连接详情。
支持通过云部署进行匹配会话,并通过专用舰队始终在线。
最后更新于
这有帮助吗?

