CivGenesis
文档
Quickstart
设计
协议
SDK
Protobuf
观测
Jobs
IPC
Nacos
gRPC
Dispatcher
集成
GitHub
文档
Quickstart
设计
协议
SDK
Protobuf
观测
Jobs
IPC
Nacos
gRPC
Dispatcher
集成
GitHub
  • 指南

    • Quickstart(示例工程)
    • CivGenesis 设计(草案)
    • 协议与会话(草案)
    • Protobuf:消息定义与生成(Java / Unity / TypeScript)
    • 可观测性:Prometheus Metrics + OpenTelemetry Tracing
    • 后台任务(本地 / 分布式)
    • 客户端 SDK(Unity / Cocos / LayaAir)
    • Dispatcher 与注解路由(草案)
    • 进程间通信(IPC)与服务发现(草案)
    • Nacos 注册中心(默认实现)
    • gRPC(与 Node.js 战斗进程互通)
    • 时间轮定时系统(草案)
    • 配置项建议(草案)
    • 安全基线(草案)
    • 系统消息(protobuf)草案
    • 集成指南(不含业务逻辑)
    • 热更新(兼容 Arthas redefine)草案

客户端 SDK(Unity / Cocos / LayaAir)

本仓库核心是服务端框架,但协议是 WebSocket Binary + TLV,因此需要客户端侧有“可复用的编解码与连接管理”。

本节提供:

  • Unity(C#)参考实现:TLV 编解码 + 请求/响应(seq)+ 可靠推送 ACK(ACK_REQUIRED)
  • TypeScript(Cocos Creator / LayaAir / 浏览器)参考实现:同上

说明:这里的 client SDK 不包含任何业务逻辑,只实现协议与连接管理。

1) WebSocket 二进制

  • Unity / LayaBox 都必须使用 binary(ArrayBuffer / byte[])发送与接收
  • 生产环境建议使用 wss://(TLS)

2) 协议要点(客户端必须实现)

详见 docs/PROTOCOL.md,客户端侧需要重点实现:

  • TLV Frame 编解码(uvarint tag/len)
  • Req/Resp:seq>0,超时重试必须复用同一 seq
  • 可靠推送:仅当 flags.ACK_REQUIRED 时才需要 ACK,并用 pushId 去重
  • 断线重连:优先走 Resume(lastAppliedPushId),窗口不满足则全量 SyncSnapshot

3) 参考代码位置

  • Unity(C#):clients/unity/
  • TypeScript(Cocos/LayaAir):clients/ts/

这些代码默认只依赖语言标准库(不绑定具体 WebSocket 插件/引擎),通过一个最小 Transport 接口接入。

4) TypeScript SDK 构建(可选)

clients/ts/ 提供一个可发布的 npm 包骨架(仅 TypeScript 编译,无运行时依赖):

cd clients/ts
npm i
npm run build

更多用法见 clients/ts/README.md。

Edit this page
最近更新: 2025/12/31 16:07
Contributors: cuihairu
Prev
后台任务(本地 / 分布式)
Next
Dispatcher 与注解路由(草案)