通过WebRTC进行实时通信-介绍
2018-10-12 本文已影响14人
音视频直播技术专家
介绍
WebRTC 是一个开源项目,它能与native 应用进行音频、视频和数据的实时通讯。WebRT有几个 JavaScript API - 可以点击链接查看例子。
- getUserMedia: 捕获音视频数据。
- MediaRecorder:录制音频与视频。
- RTCPeerConnection:用户之间传输音视频。
- RTCDataChannel:在数据间传输数据。
在哪儿可以使用WebRTC
在Android 和 桌面上的 Firefox, Opera 和Chrome都可以使用 WebRTC。而且WebRTCb也可用于 iOS 和 Android的native 应用上。
什么是 signaling?
WebRTC使用 RTCPeerConnection 在浏览器之间传递数据,但还需要一种协调通讯的机制来发送控制消息。比较有名的是 signaling
。
WebRTC中并没有规范signaling
的方法和协议,在本实验中我们将使用 Sokcet.IO传递消息。当然有很多可替代方案。
什么是 STUN 和 TURN?
WebRTC设计是在端对端下工作,因此用户之间尽可能的直连。然而,WebRTC的真实世界是:客户端应用需要穿越 NAT 网关和防火墙,因此,在直连失败的情况下,端到端的网络需要回退。为了处理这种情况,WebRTC API 使用 STUN服务获取你的电脑的IP地址,在端对端通讯失败的情况下,TRUN服务当做relay服务。(在真实世界中的WebRTC 作了更为详细的产阐)。
WebRTC 安全吗?
加密是WebRTC所有组件的基础。WebRTC的 javascript API只能在安装的源上使用(HTTS或localhost)。Signaling机制没有在WebRTC标准中定义,因此它以来你自己使用安全协议。
想看更多?可以到这里webrtc.org/start.