🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] > [概述](https://a-wing.github.io/webrtc-book-cn/01_introduction.html#%E4%BF%A1%E4%BB%A4-signaling) ## 信令 (Signaling) 会话描述表示需要交换的最重要的信息。它指定了传输(和 Interactive Connectivity Establishment [ICE])信息,以及建立媒体路径所需的媒体类型、格式和所有相关的媒体配置参数 JSEP 方法将驱动信令状态机的职责完全委托给应用程序:应用程序必须在正确的时间调用 API,并将会话描述和相关的 ICE 信息转换为选择信令协议已定义的消息。而不是简单地将浏览器发出的消息转发到远程。 ## WebRTC API 所有媒体和数据流都使用 DTLS 加密 ![](https://a-wing.github.io/webrtc-book-cn/assets/img/rcwr_0104.0d315480.png) ### MediaStream MediaStream 是音频和/或视频的实际数据流的抽象表示 LocalMediaStream 表示来自本地媒体捕获设备(例如,网络摄像头、麦克风等)的媒体流 要创建和使用本地流,web 应用程序必须通过 `getUserMedia()` 函数请求用户访问 LocalMediaStream 上的 `stop()` 函数来撤销自己的访问权限 ### PeerConnection PeerConnection 允许两个用户在浏览器之间直接通信 信令通道是通过web服务器中的页面脚本代码提供的,例如使用XMLHttpRequest 或 WebSocket ### STUN and TURN > NAT会话遍历实用程序(STUN)协议([RFC5389](https://tools.ietf.org/html/rfc5389))允许主机应用程序发现网络上网络地址转换器的存在,并且在这种情况下,可以为当前连接获取分配的公共IP和端口元组。 为此,该协议需要已配置的第三方STUN服务器的协助,该服务器必须位于公共网络上。 >围绕NAT的遍历使用中继(TURN)协议([RFC5766](https://tools.ietf.org/html/rfc5766))允许NAT后面的主机从驻留在公用Internet上的中继服务器获取公用IP地址和端口。 由于中继了传输地址,主机可以从任何可以将数据包发送到公共Internet的对等方接收媒体。 `PeerConnection`机制将ICE协议(请参阅[ICE Candidate Exchanging](https://a-wing.github.io/webrtc-book-cn/01_introduction.html))与 STUN 和 TURN 服务器一起使用,以使基于UDP的媒体流穿越NAT盒和防火墙 ### DataChannel DataChannel API旨在提供通用传输服务,允许Web浏览器以双向对等方式交换通用数据。