WebRTC是浏览器实时通信 RTC 的提供 JS 接口, JS 接口通过信令建立浏览器点对点(peer-to-peer,P2P)的信道,信道可发送任何数据并无需经过服务器。
WebRTC提供三个API
WebRTC使用 RTCPeerConnection 在浏览器之间传递流数据,此流数据通道是P2P的,无需服务器中转。但并不意味着能抛弃服务器,仍需服务器为传递信令(signaling)来建立信道。WebRTC没有定义用于建立信道的信令协议,信令并不是 RTCPeerConnection API 的一部分。
既然没有定义信令(signaling)的协议,可选择任意方式(如AJAX、WebSocket)任意协议(如SIP、XMPP)来传递信令,建立信道。
需要信令来交换信息分为:
通过服务器建立信道
WebRTC提供浏览器之间P2P信道进行数据传输,但建立这个信道必须有服务器的参与。
WebRTC需服务器提供:
NAT/防火墙穿越技术
在处于使用NAT设备的私有TCP/IP网络中的主机之间建立连接时需使用NAT穿越。NAT的行为是非标准化的,穿越技术大多使用公共服务器,使全球任何地方都能访问得到IP地址,在 RTCPeerConnection 中实用ICE框架来保证 RTCPeerConnection 实现NAT穿越。
ICE
ICE(Interactive Connectivity Establishment, 综合性NAT穿越技术)框架整合各种NAT穿越技术如STUN、TURN(Traversal Using Relay NAT,中继NAT实现的穿透),ICE先使用STUN尝试建立一个基于UDP的连接,失败后实用TCP(先尝试>服务器 :
公网服务器 购买带有公网IP的云服务器
镜像 :
ubuntu 1604
ubuntu16镜像已经带有coturn的源 可以直接apt-get安装
STUN/TURN的默认端口是3478
除此之外还可以通过 >
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)