1. 发送AUTH包#
弹幕服务器连接成功后,客户端首先发送一个Proto包,Operation字段置为OP_AUTH,Body字段为连接字符串,格式为json。
2. 发送心跳#
- 频率30s。
- body为空即可。
协议格式:(基于websocket之上的应用层协议,所有字段 大端 对齐)。

- Packet Length:整个Packet的长度,包含Header。
- Header Length:Header的长度,固定为16。
- Version:
- 如果Version=0,Body中就是实际发送的数据。
- 如果Version=2,Body中是经过压缩后的数据,请使用zlib解压,然后按照Proto协议去解析。
- Operation:消息的类型:
| 名称 | 值 | 解释说明 |
|---|---|---|
| OP_HEARTBEAT | 2 | 客户端发送的心跳包(30秒发送一次) |
| OP_HEARTBEAT_REPLY | 3 | 服务器收到心跳包的回复 |
| OP_SEND_SMS_REPLY | 5 | 服务器推送的弹幕消息包 |
| OP_AUTH | 7 | 客户端发送的鉴权包(客户端发送的第一个包) |
| OP_AUTH_REPLY | 8 | 服务器收到鉴权包后的回复 |
- Sequence ID:保留字段,可以忽略。
- Body:消息体,客户端解析Body之前请先解析Version字段。
- body的内容一般是json格式,里面一条广播消息称为cmd:
Version=2时,zlib压缩后的body格式可能包含多个完整的proto包(可以理解为递归)。
