协议与二进制序列化工具
二进制和线上协议天生就不给你看结构,平时没事,等一条消息解析不出预期的样子就麻烦了:一条 Protobuf 消息出现了没见过的 wire type、一个 WebSocket 帧看起来永远不会关闭、一条本该匹配的 MQTT 订阅却悄悄漏收了消息。这些工具把这类二进制或线上数据一路解码到字节级别,让你直接看清字段边界和类型,而不是靠猜十六进制转储。
二进制格式工具覆盖需要写脚本才能看清的序列化数据:Protobuf Wire / Varint 工具按字节偏移解码,配合 .proto 文件也行;CBOR 转换器和 MessagePack 解码器保留原始类型。线上协议方面,WebSocket 帧解析逐帧读取抓包,Redis RESP 协议解析按帧拆开,MQTT 主题匹配测试看出哪些主题命中过滤器。
14 个工具
解码二进制格式
-
Protobuf Schema 工具
格式化 proto3 定义,检查字段编号与类型引用
-
Protobuf Wire / Varint 工具
按 Wire 格式解析 Protobuf 字节,没有 schema 也能读
-
MessagePack 解码器
把 MessagePack 解码成类型树,也能反向编码
-
CBOR 转换器
把 CBOR 解码成类型树,或将 JSON 编码成 CBOR
-
BSON / Extended JSON 工具
逐字段查看 BSON 类型与偏移,可转成扩展 JSON
-
ASN.1 / DER / BER / TLV 查看
十六进制 Base64 解析 ASN.1
-
Base 编码转换
在 Base16、32、58、85 之间转换,含多种字母表
协议 / 二进制序列化工具常见问题
Protobuf 的线上格式即使没有 schema 也会暴露字段编号和 wire type,只是没有字段名。Protobuf Wire / Varint 工具在没有 .proto 文件时可以按字节偏移解码,有 .proto 文件时也能配合它解析出字段名。
MQTT 的主题过滤器用 + 和 # 通配符,匹配规则很具体,一个看起来没问题的过滤器仍可能因为多一级或少一级目录而匹配不上某个主题。MQTT 主题匹配测试会拿真实主题去测试订阅过滤器,直接展示具体哪些能匹配。
两者都是比 JSON 更紧凑的二进制格式,类型系统也差不多,但字节层面的编码方式不一样,CBOR 是 IETF 标准,还带有 MessagePack 没有的扩展标签。CBOR 转换器和 MessagePack 解码器分别在保留原始二进制类型的前提下解码各自的格式。