当前位置: 首页 > wzjs >正文

企业介绍微网站怎么做的谷歌网站优化推广

企业介绍微网站怎么做的,谷歌网站优化推广,oa办公系统怎么使用,浙江耀华建设集团网站文章目录 RTMP协议解析【三】控制消息设置块大小(Type 1)终止消息(Type 2)确认消息(Type 3)确认窗口大小消息(Type 5)设置对端带宽消息(Type 6)用户控制消息 RTMP协议解析【三】 本专栏重点负责介绍RTMP协议的理论部分, 跳过定义,协议与其他协议的优…

文章目录

  • RTMP协议解析【三】
  • 控制消息
    • 设置块大小(Type = 1)
    • 终止消息(Type = 2)
    • 确认消息(Type = 3)
    • 确认窗口大小消息(Type = 5)
    • 设置对端带宽消息(Type = 6)
    • 用户控制消息

RTMP协议解析【三】

本专栏重点负责介绍RTMP协议的理论部分, 跳过定义,协议与其他协议的优缺点对比,协议的拓展与改进,协议的历史发展等其他废话

本专栏重点介绍三个部分

  • RTMP的握手
  • RTMP消息
  • RTMP推流

前情简要

在RTMP协议解析【一】中,我介绍了RTMP握手的相关流程和包结构,RTMP工作流程大致如下:

  1. 客户端与服务器建立TCP连接。
  2. 双方通过握手过程确认协议版本及交换随机数等信息。
  3. 客户端发送连接命令(connect)到服务器。
  4. 服务器响应连接命令,返回连接结果。
  5. 客户端与服务器建立流(stream)进行音视频数据传输。
  6. 在传输过程中,双方可以发送控制命令,如播放(play)、暂停(pause)等。
    当连接关闭时,双方结束消息传输并断开连接。

在 RTMP协议解析【二】中我介绍了RTMP协议的Chunk格式

在本文里,我将会介绍RTMP消息的细节,具体为:

  • 控制消息
  • 用户控制消息

控制消息

RTMP协议控制消息是指Chunk Stream参数的消息

控制消息的消息类型为

  • 1
  • 2
  • 3
  • 5
  • 6

消息的Message Stream ID固定为0,Chunk Stream ID固定为2

设置块大小(Type = 1)

本控制消息用来通知对端的块大小的最大值,默认块大小为128字节,结构如下:

在这里插入图片描述

  • 第一bit必须为0
  • 后面31bit为:Chunk Size,表示此后使用此值作为最大的块大小

终止消息(Type = 2)

本控制消息用于通知对端,如果正在等待一条消息的部分块(一个Message可能由多个Chunk组成),那么可以丢弃之前已经接受到的块,对端接受到的Chunk Stream ID作为当前控制消息的有效负载。

业务层一般会在关闭的时候发送这个消息以表示不需要进一步对这个消息进行处理

整个包结构为4字节,仅1个字段:Chunk Stream ID,用来表示哪个Chunk StreamID要被丢弃

确认消息(Type = 3)

本控制消息用来在客户端或者服务端接收到等同于窗口大小的字节后必须发送对端一个确认消息。

窗口大小是指发送者在没有收到接收者的确认消息之前发送的最大字节数,本控制消息定义了序列号也就是目前为止收到的字节数

本控制消息占4字节,仅一个字段:Sequence Number,表示包含了截至目前收到的数据总和,单位为字节

确认窗口大小消息(Type = 5)

本控制字段用来在客户端或者服务端发送本消息通知对端确认消息的窗口大小,结构如下:

在这里插入图片描述

占4个字节,表示确认窗口的大小,单位为字节

设置对端带宽消息(Type = 6)

用来在客户端或者服务端发送本消息更新对端传输的带宽,输出带宽值和窗口大小值相同,如果对端在本消息中收到的值和窗口大小不相同,则发回确认窗口大小消息,结构如下:

在这里插入图片描述

  • Acknowledgement Window Size:占4字节,确认窗口的消息,单位为字节
  • Limit Type:限制消息,取值为:0(硬),1(软),或者2(动态)
    • 如果是硬限制:对端必须按提供的带宽发送数据
    • 如果是软限制:对端可以灵活决定带宽,发送端可以限制带宽
    • 如果是动态,则带宽既可以是硬限制,也可以是软限制

用户控制消息

用户控制消息用于告知对方执行该信息中包含的用户控制时间,消息类型为4,并且Message Stream ID固定为0, Chunk Stream ID固定为2

用户控制消息在接受到后,需要马上生效

结构如下:

在这里插入图片描述

  • Event Type:事件类型,占2字节,16bit
  • Event Data:事件数据

其中,Event Type取值有如下情况

取值含义描述
0stream begin服务器发送这个事件来通知客户端一个流已就绪并可以用来通信。默认情况下,这一事件在成功接收到客
1Stream EOF服务器发送这一事件来通知客户端请求的流的数据回放已经结束。在发送额外的命令之前不再发送任何数据。客户端将丢弃接收到的这个流的消息。事件数据为4字节,代表了回放已结束的流的流 ID
2StreamDry服务器发送这一事件来通知客户端当前流中已没有数据。当服务器在一段时间内没有检测到任何消息,它可以通知相关客户端当前流已经没数据了。这一事件数据为4字节,代表了已没数据的流的流 ID。
3SetBuffer Length客户端发送这一事件来通知服务器缓冲区大小 (以毫秒为单位),这个缓冲区用于缓存来自流的任何数据。
此事件在服务器开始处理流之前就发送。事件数据的前4个字节代表了流ID,紧接其后的4个字节代表了以
毫秒为单位的缓冲区的长度。
4Stream Recored服务器发送这一事件来通知客户端当前流是一个录制流。事件数据为4字节,代表了录制流的流 ID
6PingRequest服务器端发送这一事件用于测试客户端是否可达。事件数据是为一个4字节的时间戳,代表了服务器端发
送这一命令时的服务器本地时间。客户端在接收到这一消息后会立即发送 PingResponse 回复。
7PingResponse客户端发送这一事件用于回复服务器的PingRequest。事件数据是为一个4字节的时间戳,该时间戳是从接
收到的PingRequest的事件数据中获取的。

关注我,后续将会介绍RTMP的命令消息

http://www.dtcms.com/wzjs/227673.html

相关文章:

  • 怎么新建自己的网站软文素材网
  • 动态网站设计栏目培训心得体会2000字
  • 中冶东北建设最新网站什么叫seo优化
  • 新疆机票网站制作windows优化大师卸载
  • 商城网站模板 免费西安网站推广
  • 手机公司网站建设推广渠道有哪些
  • 网站自己做推广网络推广网络营销软件
  • 餐饮类网站模板百度seo排名查询
  • 出口做谷歌网站怎么制作网站教程手机
  • 做网站和web前端一样吗武汉百度快照优化排名
  • wordpress区分移动站怎样免费制作网页
  • 做网站的IDE竞价托管哪家专业
  • qq群优惠券里面网站怎么做的福州整站优化
  • 安全员c证电子证书查询搜索引擎优化教程
  • 网站建设项目可行性报告如何优化网页加载速度
  • 商丘网站建设推广公司如何编写一个网站
  • 广州建设时时彩网站发稿平台
  • 网站建设开源项目github营销型网站
  • 做网站还是做阿里如何做电商新手入门
  • 贵阳市公共住宅投资建设集团官方网站静态网页设计与制作
  • 深圳做网站百度推广登录平台
  • 企业网站优化公司哪家好教你免费申请个人网站
  • 网站建设的费用入账百度服务中心人工客服电话
  • 数据网站怎么做测试企业qq一年多少费用
  • 访问国外网站dns搜索历史记录
  • 陕西省建设工程信息网官网谷歌搜索优化seo
  • 理卖做各视频网站的会员哪些网站可以免费发广告
  • 鞍山便民信息平台百度seo优化规则
  • 做餐饮的网站青岛网站制作推广
  • 做网站有哪些法规苏州网站制作推广