先在控制台发布规则,再在客户端调用公共接口。不要把长期密钥写进游戏包当唯一凭证。
ticket.jws、config.jws、ticket_key.b64、config_key.b64、pop_seed.b64、ca.pem。gs_demo.exe <session-dir> 做演示回显;gsdiag.exe <session-dir> 做本机自检(打印原因码,不打印票据)。Android 示例把同一组文件放到应用私有目录 files/gs-e2e/。gs_client_configure → gs_client_start → gs_local_endpoint,再把游戏改连返回的 127.0.0.1:port。可选:gs_install_id 读安装实例标识(不要打进公开日志),gs_probe 探测当前边缘节点(超时会在签名节点列表内重拨,不是热备)。错目标返回原因码 110;超连接预算 113;协议版本不足 114;密钥撤销 115;探测超时 304;当前无路 305。完整票据不会出现在日志或控制台回显里。
按接入顺序改连 127.0.0.1:port 之后,用下面三步确认流量已走盾、源站地址未暴露。
运行 gs_demo.exe <session-dir>(或 Python / Unity 示例)拿到 stage=endpoint host=127.0.0.1 port=<port> proto=tcp+udp,另开终端确认该端口在本机 loopback 上监听,且 TCP 与 UDP 是同一端口:
netstat -ano | findstr 127.0.0.1:<port>
期望输出同时包含 TCP 127.0.0.1:<port> 与 UDP 127.0.0.1:<port> 且状态为 LISTENING;Local Address 必须是 127.0.0.1,不是 0.0.0.0(只对本机开放)。
在游戏机本机抓包,显示过滤写源站地址(控制台「转发目标」里的 origin):
ip.addr == <源站IP>
期望结果:没有游戏机与源站之间的直连包;游戏数据发往的是边缘节点地址,而不是源站。再配合 ip.src == <游戏机IP> 检查出站方向,同样不应出现发往源站 IP 的包。若出现直连源站的流量,说明游戏进程仍在使用原地址连接,需要把连接改成 gs_local_endpoint() 返回的 127.0.0.1:port。
| 输出 | 含义 |
|---|---|
stage=create | 客户端实例已创建 |
stage=configure | 已用 6 个会话文件完成签名校验与配置装载 |
stage=start | SDK 已启动 loopback 与边缘连接 |
stage=endpoint host=127.0.0.1 port=... | 本机监听端点(TCP 与 UDP 同端口) |
stage=probe reason=0 rtt_ms=... | 边缘探测成功(gsdiag / gs_demo) |
stage=tcp reason=0 | 已连上本机 127.0.0.1(gsdiag 不以源站回显为成功条件) |
stage=echo bytes=N | gs_demo TCP 回显成功 |
stage=udp-echo bytes=N | gs_demo UDP 回显成功 |
stage=stop / stage=done | 正常停止并销毁 |
gsdiag.exe 打印 reason=<数字>;gs_demo 失败时打印 stage=error reason=...。缺 6 个文件为 missing=...。常见原因码:103 票据过期(重新签发会话)、110 目标不匹配、113 超出连接预算、114 协议版本不足、115 密钥已撤销、304 探测超时(已尝试改拨下一节点)、305 当前无路。
SDK 对网关只保持 一条 TLS 长连接(不是同时连所有边缘节点)。签名配置里的 edges[] 按 priority 排序:启动时跳过不可达节点;运行中外层断开后关闭失效连接、结束本机已打开的游戏 TCP,再向列表中下一个节点重新鉴权拨号。loopback 端口不变。这不是透明长 TCP 迁移:需要游戏自己重连 127.0.0.1。UDP 与弱状态 TCP 可在外层恢复后继续。
计费按「峰值同时在线设备」计算,开通经申请/邀请,首期不支持自助扣费;结算与档位以商务确认为准。
以安装实例为口径(不是 DAU,也不是注册账号数):同一时刻已通过 SDK 完成鉴权并保持连接的设备数,取计费自然月内的峰值。短期会话过期或主动断开后不重复计数。
| 档位 | 峰值同时在线 | 月价 | 已登记源站 |
|---|---|---|---|
| 入门 | 200 | 399 | 5 |
| 简易 | 300 | 699 | 5 |
| 基础 | 400 | 999 | 5 |
| 商务 | 600 | 1999 | 7 |
| 专业 | 800 | 2999 | 9 |
| 企业 | 1000 | 4999 | 11 |
超出档位峰值或需要更多源站,在申请时说明,由商务确认。
统计该租户在控制台登记并通过校验的源站(host:port)数量;未登记的地址不会回源。同一源站多端口按条目计数。
当会话票面 maxKbps 大于 0 时,边缘按该值限制本会话转发速率:TCP 延迟发送,UDP 超限丢弃。默认与控制台签发均为 0,表示不按带宽限速。不按该能力单独计费,也不构成正式服务承诺。
默认关闭。仅当控制台该条转发规则勾选「真实 IP」,并且边缘与回源组件已成对升级后,回源 TCP 会在业务数据前附加 Proxy Protocol v2 头。源地址是边缘观测到的客户端地址,不是游戏进程自己申报的地址。
real_ip_header / HAProxy / 游戏网关同类选项)。未开启时不要打开开关,否则会把协议头当成业务数据。