了解Edgegap的工作原理

了解Edgegap的工作原理

/

中间人

中间人

部署至 Edgegap

已发布

已发布

已发布

最近一次准确性审核

最近一次准确性审核

最近一次准确性审核

Nakama:如何通过 Nakama 匹配系统启动 Edgegap 专用服务器

Nakama:如何通过 Nakama 匹配系统启动 Edgegap 专用服务器

本指南向您展示如何保留 Heroic Labs 的 Nakama 用于您的账户、社交功能和匹配,并为每场比赛启动一个 Edgegap 专用游戏服务器:当 Nakama 的匹配系统将玩家分组时,Nakama 会在他们附近部署一个服务器,并将服务器地址发送给每位玩家。

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

Nakama 和 Edgegap 通过 Edgegap 的 Nakama Fleet Manager 插件进行连接,这是与 Heroic Labs 共同维护的经过验证的集成。它在您的 Nakama 服务器内部运行,因此您的 Edgegap API 令牌始终保留在后端,绝不会传递给游戏客户端。

本指南涵盖:

  1. 准备一个可用的 Edgegap 应用版本和 Nakama 服务器

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

  3. 将 Edgegap Fleet Manager 添加到 Nakama

  4. 对其进行配置

  5. 向 Nakama 报告游戏服务器的状态

  6. 当 Nakama 的匹配系统找到对局时启动服务器

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

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

  • 使用代码智能体。 将 Claude Code、Cursor 或其他智能体连接到 Edgegap MCP 服务器及其 agent skills。智能体负责编写 Nakama 模块和游戏服务器调用,并检查您的应用版本及部署。您只需处理 Nakama 和 Edgegap 控制面板、密钥以及试玩测试。

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

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

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

1. 开始之前

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

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

  • 一个 Nakama 服务器,您可以向其添加 Go 运行时模块:可通过 Docker 自托管,或在 Heroic Cloud 上托管。

  • 一个 Edgegap API 令牌,可从 控制面板 → 用户设置 → 令牌 获取。它仅用于您的 Nakama 服务器配置。该令牌适用于整个组织,因此切勿将其放入您的游戏客户端、游戏服务器、项目文件或聊天中。

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

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

Edgegap MCP 服务器允许您的智能体检查您的应用和版本、部署测试服务器并查看您账户上的日志。edgegap-deployments-api 智能体技能为它提供了用于启动 Edgegap 服务器的后端已测试规则,包括 Nakama。

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. 将 Edgegap Fleet Manager 添加到 Nakama

该插件实现了 Nakama 的队列管理器(Fleet Manager):Nakama 向其请求服务器,它会在 Edgegap 上部署一台服务器并在 Nakama 的存储中进行跟踪。

自托管 Nakama:使用 go get github.com/edgegap/nakama-edgegap 将 Go 软件包添加到您的运行时模块中,然后在模块的 InitModule 中注册它:

  • fleetmanager.NewEdgegapFleetManager(ctx, logger, db, nk, initializer),然后 initializer.RegisterFleetManager(efm)。

  • initializer.RegisterAfterAuthenticateCustom(fleetmanager.OnAuthenticateUpdateCustom):在每位玩家登录时存储其公网 IP,以便 Edgegap 能够将服务器放置在整个群体附近。

  • initializer.RegisterMatchmakerMatched(...):用于第 6 步的回调。

对于本地测试,该代码仓库包含一个 docker-compose.yml 和 Dockerfile:docker compose up --build -d。

Heroic Cloud:从 nakama-edgegap 代码仓库(或包含您自己模块代码的派生仓库)创建一个构建器(Builder)。

配合您的智能体:

“加载 edgegap-deployments-api 技能。将 github.com/edgegap/nakama-edgegap 添加到我的 Nakama Go 模块中:注册 Edgegap 队列管理器、用于存储玩家 IP 的认证后钩子,以及一个撮合匹配成功的回调,用于为匹配的用户创建 Edgegap 实例并通知他们。从环境变量读取所有配置设置。”

4. 配置车队管理器

在您的 Nakama 服务器上设置这些环境变量(在 Heroic Cloud 上,位于您的实例配置中):

  • EDGEGAP_API_URL:https://api.edgegap.com

  • EDGEGAP_API_TOKEN:您的 API 令牌,包含其 token 前缀。请将其保存在您的机密存储中。

  • EDGEGAP_APPLICATION:您的 Edgegap 应用程序名称。

  • INITIAL_EDGEGAP_VERSION:要部署的应用版本,在您设置另一个版本之前一直使用。

  • EDGEGAP_PORT_NAME:玩家连接的端口,通常为 gameport。

  • NAKAMA_ACCESS_URL:Nakama 服务器的公开 https:// 地址,游戏服务器会对其进行回调。

可选配置:EDGEGAP_POLLING_INTERVAL(默认 15 分钟)、NAKAMA_CLEANUP_INTERVAL(1 分钟)和 NAKAMA_RESERVATION_MAX_DURATION(30 秒)。在生产环境中保持这两个后台工作进程处于开启状态。

发布新的服务器版本而无需重启 Nakama:使用您的 Nakama HTTP 密钥调用服务器对服务器 RPC update_edgegap_version,附带 {"version": "..."}。它会先检查 Edgegap 上是否存在该版本。游戏客户端无法调用它。

5. 向 Nakama 上报游戏服务器状态

Nakama 会跟踪它启动的每个服务器:它是否就绪、谁已连接以及剩余多少空位。您的游戏服务器会通过插件注入到每个部署中的三个环境变量来告知它这些信息:

  • NAKAMA_INSTANCE_EVENT_URL:服务器接受玩家后发送 READY,无法开始比赛时发送 ERROR,比赛结束时发送 STOP。收到 STOP 时,Nakama 会停止 Edgegap 部署。

  • NAKAMA_CONNECTION_EVENT_URL:发送已连接用户 ID 的完整列表,大约每 5 秒批量发送一次。

  • NAKAMA_INSTANCE_METADATA:Nakama 创建服务器时所使用的比赛详细信息,格式为 JSON。

Unity:Edgegap Server Nakama Plugin for Unity 会为您完成这些调用。其他引擎:从您的服务器代码中进行三次简短的 HTTP 调用。

使用您的智能体:

“在我的游戏服务器中,读取 NAKAMA_INSTANCE_EVENT_URL、NAKAMA_CONNECTION_EVENT_URL 和 NAKAMA_INSTANCE_METADATA。服务器开始监听后,随实例 ID 一同发送 READY;每 5 秒发送一次已连接的用户 ID;并在比赛结束时发送 STOP。”

6. 当 Nakama 找到匹配时启动服务器

  1. 玩家像往常一样从您的游戏客户端加入 Nakama 的匹配系统(使用 Nakama 客户端 SDK 中的 AddMatchmaker)。

  2. 当 Nakama 将他们分组时,您的匹配成功回调会收集匹配的用户 ID,并带上匹配规模和这些用户调用 Fleet Manager 的 Create。

  3. Fleet Manager 会在玩家附近部署您的应用版本,并等待服务器返回 READY。

  4. 每位玩家都会收到一条主题为 connection-info 的 Nakama 通知,其中包含:IpAddress、DnsName、Port 和 InstanceId。客户端将连接到该地址和端口。如果服务器无法启动,玩家则会收到 create-timeout 或 create-failed:此时将他们重新放回队列中。

想让玩家加入已经在运行的服务器吗?该插件还提供了 RPC 示例:instance_list(例如,至少有一个空位的服务器)和 instance_join。在生产环境中请使用 Nakama 的匹配器,而这些示例可用于测试或服务器浏览器。

7. 双人测试

  1. 确保没有测试部署仍在运行:免费层每次仅运行一个部署。

  2. 让两个客户端登录 Nakama 并同时加入撮合系统。

  3. 在 Edgegap 控制面板中,您的版本部署将出现在您附近的位置。

  4. 两个客户端都接收到 connection-info 并连接到同一台服务器。

  5. 结束比赛:服务器发送 STOP,Nakama 停止该部署,并且它会从控制面板中消失。

如果玩家获得了地址但无法连接,这是服务器的问题,而不是 Nakama:请从控制面板手动部署您的版本并直接加入。

后续步骤

后续步骤

准备上线?让您的代理运行 edgegap-launch 技能清单:版本发布、重启策略、最长持续时间、成本控制。还没有后端?Edgegap 托管的匹配系统无需代码即可运行。

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

常见问题

关于在 Edgegap 专属服务器上托管 Nakama 对战的常见问题。

Nakama 可以启动专属游戏服务器吗?

是的。Nakama 的 Fleet Manager 允许它为每场比赛请求一台服务器。Edgegap 的 Nakama 插件实现了这一功能:当 Nakama 的匹配系统将玩家分组时,它会在玩家附近部署一台 Edgegap 服务器,并将地址发送给每位玩家。

Edgegap Nakama 插件可以在 Heroic Cloud 上运行吗?

是的。从 nakama-edgegap 仓库或包含您自己模块代码的复刻(fork)中创建一个 Builder,并在您的实例上设置该插件的环境变量。它也可以在带有 Docker 的自托管 Nakama 上运行。

我的 Edgegap API 令牌应该配置在 Nakama 的什么位置?

仅在 Nakama 服务器的配置中作为 EDGEGAP_API_TOKEN。游戏客户端和游戏服务器绝不持有它:游戏服务器通过插件注入的回调 URL 向 Nakama 报告其状态。

玩家如何从 Nakama 获取服务器地址?

服务器准备就绪后,Nakama 会向每位匹配的玩家发送一条包含服务器 IP 地址、主机名、端口和实例 ID 的连接信息通知。客户端直接连接至该服务器。

哪些游戏引擎支持与 Nakama 和 Edgegap 配合使用?

任何服务器在 Linux 容器中运行的引擎:Unity、Unreal Engine、Godot 或您自己的自研引擎。Edgegap 的 Unity 插件会代您进行服务器端的 Nakama 调用;其他引擎则只需进行三个轻量级 HTTP 调用即可。

客户

了解更多已接入 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 行

解锁

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