Appearance
RPC / 网络抓包
在 Copilot 顶栏点击 「RPC抓包」,可只读查看游戏页的网络报文,方便联调与排查协议。支持 WebSocket / 二进制 RPC 与 HTTP(fetch / XHR)。默认未录制时不 Hook,对游戏影响最小。

快速开始
- 打开 H5 游戏页 → F12 → 切换到 H5 AI Inspector
- 点击顶栏 「RPC抓包」
- 点击 「录制」,在游戏内操作以触发网络请求
- 在左侧列表选中一条报文,右侧查看元信息与 Body
- 用完后点 「录制中」 停止,或关闭面板(关闭会停止录制)
录制开启后按工具栏 WS / HTTP 通道抓取(默认两者都开,可单独关掉其中一种)。
面板功能
| 功能 | 说明 |
|---|---|
| 录制 / 录制中 | 开始或停止抓包 |
| WS / HTTP | 通道开关,默认两者都开;至少保留一种 |
| 搜索 | 协议名 / URL / 状态码 / 关键词;Enter 下一项、Shift+Enter 上一项(类似节点搜索) |
| 清空 | 清空当前列表 |
| 列表 + 详情 | 左侧:方向或 HTTP 方法、时间、协议名或路径、长度;右侧:元信息与 Body(标题行可复制) |
| 生成草稿 | 根据选中的二进制 / sproto 报文生成协议表骨架(HTTP 条目不适用) |
| 协议表 | 导入 / 导出 JSON,补全 WS 二进制消息名与字段解码 |
| 说明 | 面板内简要帮助 |
关闭 RPC 面板会停止录制;重新打开后需再次点「录制」。
能解出什么
| 类型 | 表现 |
|---|---|
| sproto | 自动协议名(如 cs_ / sc_)+ JSON Body,一般无需额外配置 |
| 明文 WebSocket | 识别包内 [...] / {...},列表可显示 cmd 等摘要 |
| 二进制包头 | 常见「长度 + 消息号 + action」结构;Body 为结构化摘要;可用协议表补全字段名 |
| HTTP | fetch / XMLHttpRequest:方法、URL、状态码、请求/响应正文(自动跳过常见静态资源如 js/css/图片字体等) |
若二进制 Body 只有十六进制摘要、没有字段名,需要导入或编辑 协议表(见下节)。HTTP 一般不需要协议表。
协议表(可选)
适用于非 sproto、需要把消息号映射成可读名称、或把二进制 payload 解成字段的游戏。
推荐流程
- 向项目组索取
rpc-schema.json(示例:rpc-schema-example.json) - 打开 「协议表」 → 导入 JSON 文件 → 填写名称 → 应用并记住
- 弹窗上方 已保存协议表 可切换、删除多份用户表(按游戏域名记忆)
- 重新点「录制」 后再看 Body(已抓到的旧包不会按新表重解)
说明:「应用并记住 / 清除本站记忆」只影响用户导入的协议表;sproto 运行时字典、插件内置通道名等不会被覆盖或清除。
也可选 「仅本次应用」(不写入本机记忆),或 「清除本站记忆」(清空该站点已存用户表列表)。
不会写表时
- 录制并在左侧选中一条 WS / 二进制 / sproto 报文(HTTP 不适用)
- 点 「生成草稿」 → 打开协议表弹窗,编辑区会填入根据该报文生成的 JSON
- 核对字段名后「应用并记住」,或把草稿交给协议同学补全
若未选中报文、或选中的是 HTTP / 无消息号的空包,会提示无法生成;以前仅对含数字 msgType/cmd 的二进制摘要有效,现已支持 sproto 已解码 Body 的字段草稿。
JSON 可包含两部分(可只写其一):
| 字段 | 作用 |
|---|---|
protocolMap | 消息号 → 可读名;键可用 "7027" 或带 action 的 "7027:8" |
decodeSchemas | 按字段顺序解码 payload;类型如 u8 / u16 / u32 / u64 / string / restHex 等 |
示例:
json
{
"protocolMap": {
"7027": "MsgML",
"7027:8": "MsgML_Act8"
},
"decodeSchemas": {
"7027:8": [
{ "name": "field_a", "type": "u64" },
{ "name": "field_b", "type": "u64" },
{ "name": "rest", "type": "restHex" }
]
}
}字段顺序需与游戏里该消息的读写顺序一致。完整示例见 rpc-schema-example.json。
游戏工程内挂表(进阶)
若调试包可在游戏页注入配置,也可在游戏页 Console 设置(仅对新录制的包生效):
js
window.__h5GameCopilotRpc = window.__h5GameCopilotRpc || {};
window.__h5GameCopilotRpc.protocolMap = {
'7027': 'MsgML',
'7027:8': 'MsgML_Act8'
};
window.__h5GameCopilotRpc.decodeSchemas = {
'7027:8': [
{ name: 'id', type: 'u64' },
{ name: 'flag', type: 'u64' },
{ name: 'tail', type: 'restHex' }
]
};多数业务同学优先用面板 导入 JSON,无需改游戏代码。
使用注意
- 当前为 只读抓包;重放 / Mock 等能力未开放
- 未点「录制」时不抓包;用完请停止录制或关闭面板
- 协议表更改后请 重新录制 再查看 Body
- HTTP 会跳过常见静态资源;过滤可写
http、GET、/api/等只看接口