本文主要是介绍RTMP协议在蓝牙连接中传输数据的运用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
RTMP协议蓝牙传输数据
RTMP传统定义
rtmp协议中基本的数据单元被称为消息(message)结构一般为:
- 时戳:4 byte,单位毫秒。超过最大值后会翻转。
- 长度:消息负载的长度。
- 类型ID:Type Id 一部分ID范围用于rtmp的控制信令。还有一部分可以供上层使用,rtmp只是透 传。这样可以方便的在rtmp上进行扩展。
- 消息流ID:Message Stream ID,用于区分不同流的消息。
消息在网络中传输时,会被分割成很多小的消息块,进行传输,增加传输的效率,而这些消息块是由消息头+消息体组成,消息头就是制定的标识消息的协议,消息体就是所传输的消息内容。
RTMP在蓝牙中的定义
手机蓝牙传输数据,无法保证双方手机时间同步,因此刨除时间戳定义改为固定字符串,因此messageHeader定义为:
struct message_header
{uint32_t magic;//magic number, 0x98765432uint32_t total;//包长度,从这一字段头算起uint32_t msgid;//消息IDuint32_t seqnum;//客户端使用,自增量uint32_t version;//协议版本,目前为1};
将需要传输的数据添加message_header
//GPBMEssage为protobuf库里的类,请参考上篇文章-(NSMutableData*)returnData:(GPBMessage*)req messageId:(int)messageId {NSString
这篇关于RTMP协议在蓝牙连接中传输数据的运用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!