Concepts 导读

TypeBox 是 Gateway WebSocket 协议的“唯一真相”

所有 WS 消息(请求/响应/事件)的 schema 都定义在 TypeBox 里,驱动运行时校验、JSON Schema 导出和 Swift 代码生成。先看 `src/gateway/protocol/schema.ts`,再跑 `pnpm protocol:gen` 生成产物。注意:feature discovery 列表不是自动扫出来的,需要手动维护在 `server-methods-list.ts` 里。

先讲这一页到底在解决什么

TypeBox 是 Gateway WebSocket 协议的“唯一真相”

所有 WS 消息(请求/响应/事件)的 schema 都定义在 TypeBox 里,驱动运行时校验、JSON Schema 导出和 Swift 代码生成。先看 `src/gateway/protocol/schema.ts`,再跑 `pnpm protocol:gen` 生成产物。注意:feature discovery 列表不是自动扫出来的,需要手动维护在 `server-methods-list.ts` 里。

原文共 14 节,先看 Start Here 路径:/concepts/typebox 查看官方原文

第一站

📨 Gateway WebSocket 世界里,来回跑的消息其实只有三种车

理解了这三种车,后面整页就都顺了。

🚗

Request

客户端开过来的请求车:{ type: "req", id, method, params }

🚙

Response

服务器回去的答复车:{ type: "res", id, ok, payload | error }

🚨

Event

服务器主动广播的通知车:{ type: "event", ... }

🚪

connect 先上路

第一辆必须是 connect,像先进门打招呼,再谈别的。

第二站

🏗️ TypeBox 的价值不是“写 schema 好看”,而是“一份图纸,多处自动出活”

这也是官方反复强调 single source of truth 的原因。

Runtime validation

像门卫拿着蓝图验车:不符合协议的帧,别想轻松混进去。

JSON Schema export

像把施工图再导出成一套通用说明书,方便别的工具继续接力。

Swift codegen

像把同一张蓝图自动翻译给 macOS 客户端,让它也按同样规则收发消息。

pnpm protocol:check

这句像总验收:重新生成一遍,再检查产物有没有老老实实提交进仓库。

第三站

🧭 这页真正要你记住的是:协议不是散在各处的小纸条,而是集中在一份总图纸里

所以想查权威定义,应该先回到 schema 源头,而不是只看某个客户端的局部实现。

src/gateway/protocol/schema.ts

这像总蓝图柜,协议形状先从这里定下来。

server.ts

这里像真正上路的交警岗亭,方法和事件会在这边按蓝图落地。

dist/protocol.schema.json

像对外分发的标准说明书。

🎈 最后记一句

TypeBox 在这里不是配角,它是 Gateway 协议那张“先画图、后施工”的总图纸。