跳转到正文

Go 宿主模块 ​

宿主维护者入口

本页面向已获框架源码访问权的宿主维护者,将 Go 模块编入 Host。开发可独立分发的 Go 插件请使用独立 Go Worker与公开 Go SDK,无需私有构建依赖。

将原生 Go 模块装入已有 Host 的 Frame,使用同一 Bus 合同调用 Python 服务、提供读取或持久叶子动作。模块不自行登录游戏,也不重复拥有玩家、实体或库存状态。

模块生命周期 ​

  1. 在 OnInit(h busapi.RegHandle) 中声明成员。h.Provide 接收声明和有类型的处理函数;初始化成功后整代激活。
  2. 使用普通 Go struct、整数宽度、Optional 与 NBT 编译结构合同。可信 busapi.Call 独立于业务参数,处理器响应它的取消与期限。
  3. 激活后,通过受权 Client 调用已发现成员。按 member、kind、major、schema digest、availability 选目标,绑定其具体 provider。
  4. 替换或停止时等处理器和来源真正结束;取消是请求,不把请求发出当作排空完成。

候选初始化仅可读取明确允许候选读取、已活动且获授权的 read。普通 service 与世界动作不因持有注册句柄而获准。宿主通过 FrameAuthorize 配置精确安装与成员授权;没有授权回调不会默认放行。

数据与动作归属 ​

Core engine 负责协议连接与有序输入;GameControl composition 组合单一领域 owner;Agent Host 提供 Frame、持久回执、授权和执行边界。集成时借用这些领域来源,不另建状态 reducer 或从旧内部启动构造细节接入。

保留的 Core bundle/UQ/CAPI 和类型薄壳服务已有消费者。其存在不表示它们是新模块推荐入口;不要仅为名称统一移动这些公开路径。

持久 op 使用原完整意图和回执。FreezeOp 固定 target、contract、arguments、intent 与 cause;需要跨进程恢复时持久保存完整 FrozenOp,只有 key 不足以恢复。等待超时、父调用结束或 unknown 都不能变成新的动作请求。Python 调用同一成员的权限规则见Bus。

可交付范围 ​

公开工具包提供 Python、独立 Go Worker 与 Lua 作者材料,不包含完整私有 Host 构建依赖。具备源码访问权的维护者从对应 Host 源码中的 examples/native-bus/go 或 examples/native-bus/shop/go 阅读宿主嵌入例,固定配套 Core/GameControl 模块版本构建;这些 Go 目录是可导入包,不是独立 Host 程序。不要把任意 .so 或单个 Go 源文件当成 Worker 制品。

历史 Go 固定组件桥仍按兼容页使用,与此 Frame 模块路径分开。

Neomega · 使用、开发与参考文档