rtmp通信以握手开始,即客户端与服务端相互发消息块。其中客户端发送的消息块被指定为C0,C1,C2,服务端发送的消息块指定为S1,S2,S3。
握手顺序
1.客户端主动发送C0,C1;客户端必须等待S1到达才能发送C2;必须等待S2到达才能发送其他数据;
2.服务端必须等待C0到达才能发送S0和S1;必须等待C1到达才能发送S2;必须等待C2到达才能发送其他数据;
C0和S0格式
1.长度:1字节
2.C0表示客户端需求的rtmp版本;S0表示服务端选择的rtmp版本。目前版本为3,0到2是之前使用的版本,4到31保留,32到255被禁用。
C1和S1
1.长度:1536字节,其中包含以下字段。
时间戳(4字节)
0标示(4字节)
随机字段(1528字节),用于区分握手的返回数据;
C2和S2
1.长度:1536字节,相当于的C1和S1的返回数据,包含数据如下:
时间戳(4字节),对于C2来说是指发送C1的时间戳;对于S2来说是指发送S1的时间戳;
时间戳(4字节),对于C2来说是指读到S1中的时间戳;对于S2来说是指读到C2中的时间戳;
随机字段(1528字节),对于C2来说是指读到S1中的随机字段&