《WebRTC权威指南》学习笔记

本文深入探讨WebRTC技术,包括实时通信原理、协议介绍、信令机制、数据通道使用及NAT穿透策略。涵盖本地媒体获取、对等连接建立、媒体流处理及安全隐私考虑。

本篇是WebRTC的一篇学习笔记。

第1章 Web实时通信技术介绍

相关协议:SIP(RFC3261),Jabber(RFC6120),Jingle(XEP-0166),实时传输协议RTP,安全RTP(SRTP),多路复用RTP控制协议(RTCP)。

相关概念:可扩展消息现场协议(XMPP [RFC6120] 也就是Jabber)服务器,Jingle客户端,公告电话交换网PSTN。

注:这里就碰到第一个问题:如何掌握这些通信协议的问题了

下面是WebRTC的一个总览图
在这里插入图片描述
总之,WebRTC支持多中设备,多方会话。这个时候多方会话有两种方案:集中式和全网状对等连接。其中全网状的连接把混合数据的操作落在了端上,一旦与会端加多就会带来问题,不适合增加规模。集中式是把数据的混合放在服务端,这样缺点是延迟较大,但是服务器扩容比较容易,所以适合大规模人员参会。

第2章 如何使用WebRTC

建立WebRTC会话有四步:

  1. 获取本地媒体:getUserMedia
  2. 建立对等连接:RTCPeerConnection
  3. 交换媒体或数据:RTCSessionDescription
  4. 关闭连接

第3章 本地媒体

WebRTC中的媒体基本单元叫MediaStreamTrack(媒体流轨道,表示一种源返回的单一类型媒体,这个源可能是设备或者是录制内容),而一个MediaStream(媒体流)中可以有若干MediaStreamTrack。

一个媒体流轨道可以是单个立体声源,或者多声道环绕音频信号。

媒体流轨道 MediaStreamTrack的暂停有两种方式:静音(muted)和禁用(enabled)。在WebRTC中使用了不同的参数控制。

创建一个MediaStream有两种方式:请求和访问本地媒体getUserMedia();通过MediaStream构造函数将现有的对象复制过来,或者通过现有的流对象添加/删除轨道而来。

媒体的选择和控制是通过参数约束来实现的。 约束大体上分为强制约束和可选约束,而具体的约束属性值有两种,一种是枚举类型的,一类是范围的(就是有最小值和最大值限定)。

在源设备获取到媒体流之后通过处理,打包成不同的MediaStream,交给传输管道发往接收端。接收端通过解析不同的MediaStream,根据不同的ID解析到全部MediaStreamTrack,然后选择性地交由不同的播放/渲染设备。

第4章 信令

信令的标准没有确定下来,但是实践中有多个方案。

信令的作用?

  1. 在参与会话的两个端之间交换会话描述协议对象中的信息
  2. 标识和身份验证
  3. 媒体会话控制
  4. 双占用分解

信令为什么没有确立标准?

因为不同的浏览器是可以通过向同一个Web服务器请求下载同一份JS代码来使用相同的信令,这样客观上就让信令变成了一种Web服务器相关的标准,无关乎浏览器。既然没有必要,也就没有这样做的必然性了。

信令的传输方法

  1. HTTP传输
  2. WebSocket
  3. 数据通道

信令协议

标准的信令协议有SIP,Jingle等。

具体的方案:

  1. HTTP轮询
  2. WebSocket代理
  3. Google应用程序引擎通道API
  4. WebSocket SIP
  5. WebSocket Jingle,Jingle是对XMPP的扩展,又称为Jabber
  6. 数据通道专有信令
  7. 使用叠加网络

一个可运行的信令通道代码

第5章 对等媒体

WebRTC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值