WebRTC 实时通信
介绍
本文档会涵盖点对点交流、视频会议等多方面:
- 使用NAT穿透技术,如:ICE, STUN,TURN来连接远端的点
- 发送本地音视频流到远端,或者接受远端的音视频流
- 发送任意数据到远端的点
点对点连接
RTCPeerConnection实例允许应用程序发起与另一个浏览器的RTCPeerConnection实例的点对点连接,或者是另一个实现了该协议的终端。连接是通过交换控制信息(也叫信令协议)来建立的。一般通过服务器来交换信息,如websocket或者xhr的方式。
RTCConfiguration
RTCConfiguration定义了一系列参数,用来配置点对点连接是如何通过RTCPeerConnection建立的。
- iceServers: RTCIceServer对象的数组,RTCIceServer结构如下
- urls: STUN或者TURN的url的数组
- credentialType: ICEServer的鉴权方式,默认是password(目前只有这一种类型的值,未来会扩展),如果是TURN服务器,则credential则代表密码,username代表用户名
- username: 用户名
- credential: 凭证信息,默认是密码
- iceServers示例:
[ {urls: 'stun:stun1.example.net'}, {urls: ['turns:turn.example.org', 'turn:turn.example.net'], username: 'user', credential: 'myPassword', credentialType: 'password'}, ]
- iceTransportPolicy: ice服务器的候选策略,