relay servers - yumi-furry/AstralGame-cli GitHub Wiki

中继服务器与游戏目录

服务器通过中继(relay)节点与其他客户端互通,房间创建时只把已启用的服务器写入邀请载荷。服务器列表持久化在可执行文件同目录的 servers.json(自动生成,可自由编辑)。

服务器列表

servers.json 中的条目结构:

字段 类型 说明
id int 本地自增主键
name string 用户可读名称
uri string EasyTier 监听 URI(含协议前缀,如 tcp://1.2.3.4:11010)
enabled bool 是否启用:只有启用的服务器才会被写入新建房间的 peers
sort_order int 排序序号(当前 UI 按添加顺序使用)
  • 首次运行(文件不存在)时返回内置默认列表:公共中继(tcp://public.easytier.cn:11010,已启用);
  • 文件存在但内容损坏时返回空列表,避免坏数据导致面板不可用;
  • 保存时全量覆盖写入 pretty JSON。

面板 / API 操作

操作 接口 说明
列表 GET /api/servers 全部中继服务器(含启用状态、排序)
新增 POST /api/servers 请求体 name、uri;默认启用,id 与排序号取当前最大值 +1
修改 PUT /api/servers/:id name / uri / enabled 均可选,局部更新
删除 DELETE /api/servers/:id 条目不存在返回 404
测速 GET /api/servers/ping 并发 TCP 连接测延迟,返回各服务器 latency_ms

测速说明

  • 每个服务器一个并发任务,避免串行等待超时;
  • 从 URI 解析 host:port,测量 TCP 握手耗时;缺省端口按 EasyTier 默认 11010;
  • 成功返回毫秒数;连接失败或 5 秒超时返回 -1(前端显示为"超时")。

内置游戏目录

GET /api/games 返回内置游戏目录(硬编码),id 用于建房请求,icon 为空串表示无图标:

id 名称 说明
minecraft 我的世界 开局域网世界,客人在本机游戏列表加入
grand_theft_auto_v 侠盗猎车手5 同时支持传承版和增强版以及跨平台联机
mindustry Mindustry 塔防 + 工厂建设沙盒
raft 木筏求生 海上生存建造
forged_alliance 最高指挥官:钢铁联盟 RTS 经典
valheim 英灵神殿 维京生存合作
ark 方舟:生存进化 恐龙生存沙盒
dont_starve_together 饥荒联机版 荒野生存合作
factorio 异星工厂 自动化工厂建设
left_4_dead_2 求生之路2 合作求生射击
palworld 幻兽帕鲁 帕鲁收集与生存
project_zomboid 僵尸毁灭工程 僵尸生存沙盒
rust 腐蚀 多人生存建造
satisfactory 幸福工厂 第一人称工厂建设
seven_days_to_die 七日杀 僵尸生存建造
stardew_valley 星露谷物语 农场经营合作
terraria 泰拉瑞亚 2D 沙盒冒险
v_rising 夜族崛起 吸血鬼生存建造
custom 自定义 手动填写网络名与密钥

相关页面