🥳 欢送有趣味的小伙伴,一起做点有意义的事!本文译者:道道里
我发动了一个 周刊翻译打算,仓库地址,拜访地址
当初还很缺气味相投的小伙伴,纯属个人兴趣,当然对于晋升英语和前端技能也会有帮忙,要求:英语不要差的离谱、github 纯熟应用、有恒心、虚心、对本人做的事负责。
想参加的小伙伴,能够 wx 私信,也能够给仓库发 issue 留言,我博客也有具体的集体联系方式:daodaolee.cn
前言
如果你对 WebRTC 这个概念有纳闷,你大可能会去谷歌上查相干材料,而后你会看到相似这样的句子:
WebRTC 是一个开源我的项目,容许您向应用程序增加点对点实时通信性能。
咱们来剖析一下这句话都通知了咱们什么:
-
开源我的项目
顾名思义,它是一个能够收费应用的开源我的项目。
-
点对点
你不须要专门为 WebRTC 而去筹备一个低廉的媒体服务器。个别的媒体服务器,视频通话可能须要 1 Mbit/s 的带宽。如果你有一个 1000 沉闷用户的平台,你须要筹备 1Gbit/s 的带宽,那如果你有 100 万用户怎么办?
-
实时通信
个别咱们听到实时通信这个概念的时候,普通人都会想到音频 - 视频通话,而实时通信则是一个更为宽泛的概念。
您能够应用 WebRTC 传输实时数据。
比方一款名叫 Haxball 的在线游戏,也能够应用 WebRTC 性能来实现。又比方 ShareDrop 是一个容许您点对点发送文件的网站。您能够将文件发送到本地网络,甚至能够点对点地发送到不同的网络。
-
应用程序
WebRTC 最后公布时,它的指标是运行在 Chrome 上的 Web 应用程序。然而明天,你能够在简直所有风行的浏览器、Android、iOS 和桌面平台上开发 WebRTC 应用程序。
Chrome、Firefox、Safari、Edge 和 Opera 等风行浏览器在桌面和挪动浏览器上都反对 WebRTC。WebRTC 还容许应用程序开发人员应用原生框架进行 iOS 和 Android 原生开发。
哪些产品应用了 WebRTC?
WebRTC 目前成为了视频和音频通话的网络通信规范。大多数风行的视频通话应用程序曾经在应用它了,就像:
- Zoom
- Microsoft Teams
- Google Meet & Google Duo
- Facebook Messenger
- Jitsi
- Twilio
- Discord
依据 2017 年的 Kranky Geek 流动,谷歌在流动上分享了一个统计数据:
留神!这个统计数据是 4 年前的,也就是说在其开始风行之前,视频和音频通话的使用量猛增。如果某一天内的 WebRTC 使用量超过数十亿分钟,也不必感觉诧异。
WebRTC 有什么劣势?
那为什么这这么多平台会应用 WebRTC 呢?它又能带来什么益处?
如果是之前的状况,你在创立实时通信的应用程序或平台的时候,须要思考很多因素,比方:
- 通信的品质(提早、媒体品质、稳定性等)
- 拜访设施硬件(相机、麦克风等)
- 网络应用(带宽应用、网络限度等)
- 视频和音频的编码 / 解码
- 安全性
- UX 改良性能(降噪、回声打消等)
- 反对跨平台(Windows、Mac、Linux、Android、iOS 等)
这些是我目前能想到的,可能还有更多。
如果应用 WebRTC 的话,你不须要思考下面这些!WebRTC 能够使应用程序开发人员可能应用简略的 API 启动实时通信能力。
提供的 API 就像 getUserMedia()
一样简略。不仅如此,应用程序还能够应用此 API 拜访设施的摄像头和麦克风。对于其余重要的 API,会在接下来的文章中具体介绍。
应用程序的职责是什么?
到这里,你可能会想“如果 WebRTC 这么厉害,我应该怎么去应用它?”。
信令信道 和 媒体信道 是通信中的两个不同的概念:
- 当你呼叫你的敌人的时候,你的手机首先会向你敌人的手机发送呼叫申请。而后,如果你的敌人接听电话,它将向您的手机发送接听电话响应。这个过程产生在信令信道上。
- 在你的设施收到承受响应后,你能够听到你的敌人的声音,这产生在 媒体信道上。WebRTC 技术遵循了和其余通信技术一样的办法。
下图是 信令信道(Signalling) 和 媒体信道(media) 的示例图:
WebRTC 负责媒体信道中的数据传输,它会让应用程序去解决信令信道。
再来看一张图,你在 Device-1 上的应用程序会调用 WebRTC 的 API 并向 Device-2 发送申请。而后 Device-2 也应该做同样的事件:
到此为止,咱们对 WebRTC 有了一个简略的意识,在前面的文章里,将会具体的介绍 WebRTC 相干内容,敬请期待!
相干材料
WebRTC in a Nutshell (Ep-I)
翻译打算原文