使用的工具:
- Charles、Protoc、Golang
开始分析
依旧老套路,使用Charles进行直播间抓包
- 发现弹幕数据的传输方式默认使用的是websocket,所以我们在这里使用http
得到初步未解码的protobuf数据
-
执行下方命令解码查看返回的数据:
-
> protoc --decode_raw < xxx.bin
-
分析之后得知数据结构并不复杂,大概包括
- 数据类型,比如评论为
1
进入直播间为2
- 详细数据
- 时间戳
- …
- 数据类型,比如评论为
打开vscode编辑器,开始编写相关的proto协议文件
这里使用的是proto3版本
编写完成,继续使用protoc
工具生成Golang的ProtoBuf序列反序列代码
> protoc --go_out=./ *.proto
golang
解码后,运行结果结构就非常清晰了
有任何问题可私信交流
本人纯粹技术爱好,若侵犯贵公司的权益,请告知