daemon auto connect - yumi-furry/AstralGame-cli GitHub Wiki
守护进程自动联网
服务器重启(如断电、系统更新)后,服务会自动加入或创建事先设置好的房间,无需人工操作。
两种模式(二选一)
| 模式 | 面板配置 | 配置文件配置 | 效果 |
|---|---|---|---|
| 自动加入已有房间 | 设置页「开机自动运行 → 自动加入」,打开开关、填入房间邀请后保存 | auto_join_enabled = true 与 auto_join_code |
服务启动后自动加入预设房间 |
| 自动创建预设房间 | 设置页「开机自动运行 → 自动创建」,点击「选择游戏…」弹出与正常创建房间一致的选游戏弹窗,选好游戏后保存 | auto_create_enabled = true、auto_create_game_id 与 auto_create_game_name |
服务启动后自动创建预设房间 |
auto_join_code 支持三种邀请形式:6 位短码(ABC123)、完整邀请链接(https://next.astral.fan/j?c=...)、或 AG1. 开头的离线邀请串。
优先级与互斥
- 同时启用两者时,自动创建优先;面板与 API 会在保存时强制互斥(启用自动加入则关闭自动创建,反之亦然)。
- 启用自动加入但邀请为空 → 保存校验失败;启用自动创建但未选游戏 → 保存校验失败。
- 服务日志出现「守护进程:已自动加入/创建房间」即表示成功。
- 自动失败不影响 Web 面板使用,可在面板「联机」页手动创建或加入。
启动流程
服务启动时按以下顺序执行联网策略(与 config.toml 配置对应):
- 配置了
auto_create_enabled且auto_create_game_id非空 → 调用与 REST 相同的建房核心实现自动创建房间,并广播room.created事件; - 否则配置了
auto_join_enabled且auto_join_code非空 → 复用加入核心逻辑自动加入(输入支持短码 / 完整链接 /AG1.离线串); - 否则若配置文件中直接写了
[network_identity]等 EasyTier 段(旧配置兼容路径)→ 按该配置启动实例。
自动联网逻辑复用 api.rs 中的 create_room_impl / join_from_input,与 HTTP 接口行为一致,避免分叉。
相关配置字段
| 字段 | 类型 | 说明 |
|---|---|---|
auto_join_enabled |
bool | 守护进程:开机自动加入 |
auto_join_code |
string | 自动加入邀请(短码 / 链接 / AG1. 离线串) |
auto_create_enabled |
bool | 守护进程:开机自动创建(与自动加入二选一) |
auto_create_game_id |
string | 自动创建预设游戏 ID(与面板创建房间所选 ID 一致) |
auto_create_game_name |
string | 自动创建预设游戏名称(面板展示用) |