了解Edgegap的工作原理

了解Edgegap的工作原理

/

Epic Online Services

Epic Online Services

部署至 Edgegap

已发布

已发布

已发布

最近一次准确性审核

最近一次准确性审核

最近一次准确性审核

Epic Online Services:如何从您的 EOS 大厅启动 Edgegap 专用服务器

Epic Online Services:如何从您的 EOS 大厅启动 Edgegap 专用服务器

本指南将向您展示如何在 Unreal Engine 游戏中保留 Epic Online Services (EOS) 大厅,并为每场比赛启动 Edgegap 专用游戏服务器:当大厅准备就绪时,您的后端会在玩家附近部署一台服务器,大厅再将其地址分发给每位成员。

一旦您的游戏服务器容器化,Edgegap 只需通过一个简单的 API 调用即可将其按需部署到全球 615+ 个边缘云位置,并完全按使用量计费:无需租用、配置或在比赛间隙保持整台服务器运行。对于预留容量的持久服务器,Edgegap 提供了 Private Fleets。

EOS 负责玩家组队;Edgegap 负责托管比赛。它们之间只需运行一个位于后端的轻量级服务,因为启动服务器需要您的 Edgegap API 令牌,而该令牌绝不能放在游戏客户端中。

本指南涵盖:

  1. 为您的 Unreal 游戏准备一个可用的 Edgegap 应用版本

  2. 将您的编码智能体连接到 Edgegap(可选)

  3. 设置您的 EOS 大厅

  4. 在后端添加部署服务

  5. 在大厅准备就绪时请求服务器

  6. 与大厅共享服务器,并结束比赛

  7. 使用两名玩家进行测试

您可以通过两种方式进行操作,也可以将它们混合使用:

  • 使用编码智能体。将 Claude Code、Cursor 或其他智能体连接到 Edgegap MCP server 及其 agent skills。智能体会编写部署服务和大厅代码,并检查您的应用版本及部署情况。您只需负责 EOS 和 Edgegap 仪表板、密钥以及游戏测试。

  • 手动操作。以下每个步骤在没有智能体的情况下也同样适用。

更倾向于无需运行后端的托管撮合服务?请参阅 Unreal 對局配對。

无需信用卡。免费版包含部署真实游戏服务器所需的资源。

无需信用卡。免费版包含部署真实游戏服务器所需的资源。

1. 开始之前

  • 一个免费的 Edgegap 账户。请验证您的电子邮箱。测试无需信用卡。

  • 您的 Unreal 游戏服务器的一个可用 Edgegap 应用版本:您已至少部署并加入过一次的服务器。您的后端会为每场比赛部署该版本,因此它需要一个功能完备的容器化游戏服务器才能实现端到端工作。如果您还没有,请参考我们的指南:Unreal Engine。记下其应用程序名称、版本名称和端口名称(通常为 gameport)。

  • 您游戏中的 EOS 大厅:Epic 开发者门户(Epic Developer Portal)中带有 Lobbies 接口的产品,以及您项目中的 EOS SDK 或 Unreal 的 EOS Online Subsystem。

  • 一个由您控制的后端,用于部署服务:您现有的游戏后端,或者一个小型无服务器函数(serverless function)。

  • 一个 Edgegap API 令牌,来源于 Dashboard → User Settings → Tokens,并存储在您后端的机密管理器中。该令牌适用于整个组织,因此切勿将其放入您的游戏客户端、游戏服务器、项目文件或聊天中。

2. 将您的代码代理连接到 Edgegap

如果您全部采用手动操作,请跳过此步骤。

Edgegap MCP 服务器允许您的智能体检查您的应用程序及版本、部署测试服务器并读取您账户上的日志。edgegap-deployments-api 智能体技能为它提供了启动 Edgegap 服务器的后端经过测试的规则:令牌存放位置、在玩家附近部署服务器、webhook、重试以及清理。

Claude Code(在您自己的终端中运行,这样令牌就绝不会通过聊天传递):

claude mcp add --transport http edgegap https://mcp.edgegap.dev/mcp -H "Authorization: token YOUR_EDGEGAP_API_TOKEN" --scope user

然后安装技能:/plugin marketplace add edgegap/edgegap-agent-skills,接着 /plugin install edgegap@edgegap。重启会话。

Cursor、VS Code 以及其他发送请求头的客户端:添加 https://mcp.edgegap.dev/mcp,并附带请求头 Authorization: token YOUR_EDGEGAP_API_TOKEN,然后使用 npx skills add edgegap/edgegap-agent-skills --skill "*" 安装技能。

Claude Desktop:自定义连接器无法发送该请求头,因此请改用本地服务器(Node 18+):{ "mcpServers": { "edgegap": { "command": "npx", "args": ["-y", "@edgegap/mcp"] } } }。首次使用时会要求输入令牌。

检查是否正常工作:

“列出我的 Edgegap 应用程序及其版本,包括每个版本的端口。”

3. 设置您的 EOS 大厅

大厅承载着整场对局。只需两个大厅属性就足够了:服务器的地址及其端口。其他一切都保留您游戏中现有的设置。

  • 成员像往常一样加入,通过您的大厅用户界面或 Unreal 的 EOS 在线子系统(Online Subsystem)。

  • 每位玩家在加入时与您的后端签到一次(例如在登录时),附带其 EOS 用户 ID。您的后端会记录该请求中检测到的公网 IP。Edgegap 利用这些 IP 在离所有玩家较近的位置启动服务器,玩家无需自行报告其 IP。

  • 添加两个大厅属性(目前为空),例如 ServerAddress 和 ServerPort。只有大厅房主可以设置它们;每次属性变更时,所有成员都会收到通知。

4. 为您的后端添加部署服务

您的后端只需一次调用即可启动服务器:POST https://api.edgegap.com/v2/deployments,附带请求头 Authorization: token <您的 API 令牌>,请求体包含:

  • application 和 version:您的 Edgegap 应用及要运行的版本,从您的配置中读取,绝不要使用“最新版本”。

  • users:每个玩家的公网 IP,格式为 {"user_type": "ip_address", "user_data": {"ip_address": "..."}}。Edgegap 会为整个群组选择延迟最低的位置。

  • tags:例如 lobby-<id>,以便您稍后查找该服务器。

  • webhook_on_ready(以及 webhook_on_error):您后端的 URL,其中包含不可猜测的每个大厅独有的令牌。服务器启动后,Edgegap 会携带服务器的 fqdn、public_ip 和 ports.gameport.external 调用它。

Edgegap 会返回 202 状态码以及一个 request_id:请立即将其与大厅关联存储。由于没有幂等性密钥,如果调用超时,请在重新部署前先查找带有 lobby-<id> 标签的部署。返回 422 意味着暂时无法分配服务器:请使用退避机制重试。Webhook 不会重试,因此如果未及时收到,请检查 GET https://api.edgegap.com/v1/status/<request_id>(整个组织的请求频率上限为每秒 20 次)。

使用您的智能体:

“加载 edgegap-deployments-api 技能,并为我的后端添加一个 Edgegap 部署服务:一个供 EOS 大厅房主携带大厅 ID 和成员 EOS ID 调用的端点,该端点需检查调用者是否为大厅房主,查询成员的 IP,使用 POST /v2/deployments 部署我的应用版本(包含标签、就绪和错误 Webhook),存储 request_id,并在就绪后暴露服务器地址和外部端口。从我的密钥管理器中读取 API 令牌。添加定期清理功能,通过精确 ID 停止孤立部署。”

原型捷径,不可用于发布:Edgegap 的文档还展示了大厅房主直接从游戏内调用 API 的方式。这会将您整个组织范围的 API 令牌置于游戏构建版本中,任何人都可以将其提取出来。仅限在您自己的机器上使用。

5. 大厅准备就绪后请求服务器

大厅房主开始比赛时:

  1. 大厅房主的游戏会调用您的部署服务,附带大厅 ID 和成员的 EOS ID,并以该玩家的身份进行身份验证(例如使用其 EOS ID 令牌)。

  2. 您的服务会部署服务器并立即返回。服务器需要几秒钟的时间来启动。

  3. 大厅房主的游戏会等待地址:它会每隔几秒检查一次您的服务,或者由您的服务通知它,直到就绪 Webhook 到达。

与此同时向玩家显示“正在启动服务器”状态,如果您的服务报告错误,则显示重试选项。

6. 将服务器分享到大厅,并结束比赛

  1. 大厅房主在大厅中设置 ServerAddress 和 ServerPort。EOS 会通知每位成员。

  2. 每位成员连接到该地址和端口(open <address>:<port>,或 ClientTravel)。就绪(Ready)意味着容器已启动;游戏可能还需要长达一分钟的时间进行加载,因此请在一段时间内每秒重试一次连接。

  3. 比赛结束时,大厅房主会清除这两个属性,成员也会离开服务器。服务器会自行停止部署:比赛结束时,它会使用 ARBITRIUM_DELETE_TOKEN 调用 Edgegap 为每次部署提供的 ARBITRIUM_DELETE_URL。无需 API 令牌。

想与相同玩家重赛?大厅房主会请求一台新服务器,流程将重新开始。

您的部署服务会停止任何遗留内容:在比赛开始前解散的大厅,或从未结束的服务器。请通过精确的 request_id 来停止这些内容(DELETE https://api.edgegap.com/v1/stop/<request_id>;返回 410 表示它已经停止),切勿使用宽泛的过滤器。

7. 双人测试

  1. 确保没有测试部署仍在运行:免费套餐一次只能运行一个部署。

  2. 启动两个客户端,全部登录到 EOS,并加入同一个大厅。

  3. 以大厅所有者身份开始比赛。您的服务将部署服务器;在 Edgegap 仪表板中,该部署将显示为带有大厅标签,并且位于您附近的位置。

  4. 两个客户端都会收到大厅更新并连接到同一台服务器。

  5. 结束比赛:属性清除,服务器自行停止,并从仪表板中消失。

如果大厅获取到了地址但没人能连接,问题在于服务器而不是大厅:手动部署您的版本,并使用 open <address>:<port> 加入它。

后续步骤

后续步骤

准备上线?让您的 Agent 运行 edgegap-launch 技能清单:版本发布、重启策略、最长持续时间、成本控制。更喜欢无需后端的托管匹配器?请参阅 Unreal 對局配對。

遇到问题?让您的 Agent 加载 edgegap-troubleshoot,或在 Edgegap Discord 上向我们的团队和其他工作室咨询。

常见问题

关于从 Epic Online Services 大厅启动 Edgegap 专属服务器的常见问题。

我可以将 Epic Online Services 大厅与 Edgegap 专用服务器一起使用吗?

是的。保留您的 EOS 大厅,当大厅房主开始比赛时,您后端的一个小型服务会在玩家附近部署一个 Edgegap 服务器。大厅房主通过大厅属性共享其地址,然后每个成员进行连接。

为什么我需要后端才能从 EOS 大厅启动 Edgegap 服务器?

启动服务器需要您的 Edgegap API 令牌,该令牌可访问您的整个 Edgegap 组织。在游戏客户端中,任何人都可以提取它。后端服务可以对其保密,并能验证发起请求的对象。

Edgegap 是如何为 EOS 大厅选择服务器位置的?

来自玩家的公网 IP 地址,当每个玩家签到时,您的后端会记录该地址。Edgegap 会为整个组挑选 Ping 值最佳的节点位置。

如何在 EOS 比赛结束时停止 Edgegap 服务器?

服务器会使用 Edgegap 注入到每个部署中的删除 URL 和令牌来停止自身的部署,无需任何 API 令牌。您的后端还会通过其确切的请求 ID 来停止残留的部署。

Edgegap 是否适用于 Unreal Engine 以及其他引擎的 EOS?

本指南使用 Unreal Engine,但该流程仅需要 EOS 大厅属性以及一个调用 Edgegap API 的后端,因此它在使用其他引擎中的 EOS SDK 时效果相同。

客户

了解更多已接入 Edgegap 的客户案例

提供 31 个从其他平台迁移至 Edgegap 的工作室案例研究。

他们选择 Edgegap 的关键原因

了解 Edgegap 自动化游戏服务器编排如何带来无缝的多人游戏体验。

费用

定价

通过混合编排优化成本与性能

通过混合编排优化成本与性能

通过混合编排优化成本与性能

边缘云

按需

$0.00115

/ vCPU

/ 分钟

按分钟计费,仅按实际使用量收费

只有在玩家在线玩游戏时才需付费。0 个活动服务器 = $0

在全球 615 多个边缘云节点中按实例部署游戏服务器。零承诺。

只需添加信用卡。

边缘云

按需

$0.00115

/ vCPU

/ 分钟

按分钟计费,仅按实际使用量收费

只有在玩家在线玩游戏时才需付费。0 个活动服务器 = $0

在全球 615 多个边缘云节点中按实例部署游戏服务器。零承诺。

只需添加信用卡。

专属物理机集群 (裸金属)

预留容量

$0.0282

/ vCPU

/ 小时

按月计费,始终开启

每个主机每月 $280(12个月标准价),或按月支付每月 $350

通过无出站流量费用的专用机队托管,优化您游戏服务器的成本效益。

持久在线,24/7全天候可用,您的工作室专属。

专属物理机集群 (裸金属)

预留容量

$0.0282

/ vCPU

/ 小时

按月计费,始终开启

每个主机每月 $280(12个月标准价),或按月支付每月 $350

通过无出站流量费用的专用机队托管,优化您游戏服务器的成本效益。

持久在线,24/7全天候可用,您的工作室专属。

您的账单因费率和使用量而异;这可能会根据游戏类型、玩家人数等因素而有所不同。

您的账单因费率和使用量而异;这可能会根据游戏类型、玩家人数等因素而有所不同。

使用我们的预估计算器模拟您的用量 ->

使用我们的预估计算器模拟您的用量 ->

Eggegap 的功能和价格:Edge Cloud 与 Private Fleets 的详细对比

Eggegap 的功能和价格:Edge Cloud 与 Private Fleets 的详细对比

对比

免费试用

边缘云

自有车队

功能特色

分析与监控

账单警报

点击展开

还有 28 行

解锁

在帐户中添加信用卡后,即可解锁各项功能。

对比

免费试用

边缘云

自有车队

功能特色

分析与监控

账单警报

点击展开

还有 28 行

解锁

在帐户中添加信用卡后,即可解锁各项功能。

对比

免费试用

边缘云

自有车队

功能特色

分析与监控

账单警报

点击展开

还有 28 行

解锁

在帐户中添加信用卡后,即可解锁各项功能。