EmberYu / vic-blog

9 stars 0 forks source link

WebRTC - part1(介绍篇) #15

Open EmberYu opened 5 years ago

EmberYu commented 5 years ago

WebRTC - part1(介绍篇)

本文是笔者自己对https://codelabs.developers.google.com/codelabs/webrtc-web/#0的翻译版本,希望可以帮到各位理解WebRTC。如果有翻译不当之处,请参照原文

介绍

WebRTC的RTC代表(real time communication),即实时通讯技术,是一个在Web端和原生app端之间用来实时传输数据,视频和音频的一个开源项目。
WebRTC提供了几种Javascript API。你可以点击链接查看演示

  • getUserMedia(): 捕获视频和音频
  • MediaRecorder: 录制视频和音频
  • RTCPeerConnection: 在用户之间传输视频和音频
  • RTCDataChannel: 在用户之间传输数据

    我可以在哪里使用WebRTC?

    WebRTC支持火狐(Firefox),Opera和Chrome的桌面端和安卓端,同时也支持原生IOS APP

    什么是信令(signaling)?

    WebRTC使用RTCPeerConnection来让浏览器之间进行数据传递,但是同样需要一个机制来协调通信的方式,发送控制信息,这样的进程被称之为信令(signaling),WebRTC并没有规定信令的方法和协议。在这个代码实验中你将会使用Socket.IO来传递信息,但是同样有更多选择

    STUN和TURN是什么?

    WebRTC是设计为端对端(peer-to-peer)工作的,所以用户可以使用最直接的路由链接。然而,WebRTC的建立是为了应对现实的网络世界:客户端应用需要通过NAT gateways和防火墙,而且端对端网络也需要回退以防连接失败,作为这个过程的一部分,WebRTC API使用STUN服务器来获取你电脑的IP,和TURN服务器作为中继服务器以防端对端通信失败。(WebRTC in the real world这里有更多细节)

    WebRTC安全吗?

    对于所有的WebRTC组件,加密是强制的,并且它的Javascript API只能在安全域(HTTPS或者localhost)使用。信令机制不是由WebRTC标准定义的,所以是否使用安全的协议取决于你。