文章目录
本篇是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会话有四步:
- 获取本地媒体:getUserMedia
- 建立对等连接:RTCPeerConnection
- 交换媒体或数据:RTCSessionDescription
- 关闭连接
第3章 本地媒体
WebRTC中的媒体基本单元叫MediaStreamTrack(媒体流轨道,表示一种源返回的单一类型媒体,这个源可能是设备或者是录制内容),而一个MediaStream(媒体流)中可以有若干MediaStreamTrack。
一个媒体流轨道可以是单个立体声源,或者多声道环绕音频信号。
媒体流轨道 MediaStreamTrack的暂停有两种方式:静音(muted)和禁用(enabled)。在WebRTC中使用了不同的参数控制。
创建一个MediaStream有两种方式:请求和访问本地媒体getUserMedia();通过MediaStream构造函数将现有的对象复制过来,或者通过现有的流对象添加/删除轨道而来。
媒体的选择和控制是通过参数约束来实现的。 约束大体上分为强制约束和可选约束,而具体的约束属性值有两种,一种是枚举类型的,一类是范围的(就是有最小值和最大值限定)。
在源设备获取到媒体流之后通过处理,打包成不同的MediaStream,交给传输管道发往接收端。接收端通过解析不同的MediaStream,根据不同的ID解析到全部MediaStreamTrack,然后选择性地交由不同的播放/渲染设备。
第4章 信令
信令的标准没有确定下来,但是实践中有多个方案。
信令的作用?
- 在参与会话的两个端之间交换会话描述协议对象中的信息
- 标识和身份验证
- 媒体会话控制
- 双占用分解
信令为什么没有确立标准?
因为不同的浏览器是可以通过向同一个Web服务器请求下载同一份JS代码来使用相同的信令,这样客观上就让信令变成了一种Web服务器相关的标准,无关乎浏览器。既然没有必要,也就没有这样做的必然性了。
信令的传输方法
- HTTP传输
- WebSocket
- 数据通道
信令协议
标准的信令协议有SIP,Jingle等。
具体的方案:
- HTTP轮询
- WebSocket代理
- Google应用程序引擎通道API
- WebSocket SIP
- WebSocket Jingle,Jingle是对XMPP的扩展,又称为Jabber
- 数据通道专有信令
- 使用叠加网络
一个可运行的信令通道代码
第5章 对等媒体
WebRTC

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

被折叠的 条评论
为什么被折叠?



