协议与 AI

协议与二进制序列化工具

二进制和线上协议天生就不给你看结构,平时没事,等一条消息解析不出预期的样子就麻烦了:一条 Protobuf 消息出现了没见过的 wire type、一个 WebSocket 帧看起来永远不会关闭、一条本该匹配的 MQTT 订阅却悄悄漏收了消息。这些工具把这类二进制或线上数据一路解码到字节级别,让你直接看清字段边界和类型,而不是靠猜十六进制转储。

二进制格式工具覆盖需要写脚本才能看清的序列化数据:Protobuf Wire / Varint 工具按字节偏移解码,配合 .proto 文件也行;CBOR 转换器和 MessagePack 解码器保留原始类型。线上协议方面,WebSocket 帧解析逐帧读取抓包,Redis RESP 协议解析按帧拆开,MQTT 主题匹配测试看出哪些主题命中过滤器。

14 个工具

协议 / 二进制序列化工具常见问题

没有 .proto 文件能不能解码 Protobuf 消息?

Protobuf 的线上格式即使没有 schema 也会暴露字段编号和 wire type,只是没有字段名。Protobuf Wire / Varint 工具在没有 .proto 文件时可以按字节偏移解码,有 .proto 文件时也能配合它解析出字段名。

MQTT 订阅为什么收不到本该匹配的消息?

MQTT 的主题过滤器用 + 和 # 通配符,匹配规则很具体,一个看起来没问题的过滤器仍可能因为多一级或少一级目录而匹配不上某个主题。MQTT 主题匹配测试会拿真实主题去测试订阅过滤器,直接展示具体哪些能匹配。

CBOR 和 MessagePack 有什么区别?

两者都是比 JSON 更紧凑的二进制格式,类型系统也差不多,但字节层面的编码方式不一样,CBOR 是 IETF 标准,还带有 MessagePack 没有的扩展标签。CBOR 转换器和 MessagePack 解码器分别在保留原始二进制类型的前提下解码各自的格式。