简单地说,WebRTC是一种在浏览器和移动应用程序之间提供点对点通信的技术。它被称为网络实时通信,是指开源项目,允许音频、视频和数据的传输。
对于WebRTC开发人员来说这是一项简单而复杂的技术。简单性的本质归结为易于实现。可以使用5到10行代码来组织两个浏览器之间的点对点视频通信。
不过,当我们与技术打交道时,总是会有一个“但是”。因为作为后端开发人员必须确保解决方案在不同的网络中工作。
什么是WebRTC?
作为谷歌于2011年发布的一个开源项目,WebRTC提供了基于API的web浏览器和移动应用程序之间的通信,包括音频、视频和数据的传输。消除了对本地插件和应用程序安装的需求,使这些连接变得更加友好,并得到了所有主要浏览器和移动操作系统的支持。
在过去的几年中,WebRTC在科技界被广泛采用。Facebook,Amazon和Google都是实施WebRTC来使其Web应用程序更快,更可靠,更安全的重要技术公司。
WebRTC特性也提供了现成的解决方案,可以很容易地与其他软件集成。
正如前面提到的,WebRTC的关键特征是它是一种简单而复杂的技术。简单性的本质归结为易于实现,只需5到10行代码就可以组织两个浏览器之间的点对点视频通信。该技术的复杂性与WebRTC的特殊性有关,它必须适应不同的浏览器,如果不能正确工作,则很难进行配置。此外,为了获得所需的结果,也应该了解STUN、TURN和NAT。
STUN是一套标准化的方法,包括一种网络协议,用于在实时语音、视频、消息和其他交互式通信应用中穿越网络地址转换(NAT)网关。
当我们需要连接两个没有外部IP地址的浏览器时,必须使用STUN。两者都连接到服务器并找出其IP。浏览器交换它们相互关联的端口。
TURN做了几乎相同的事情。它通过自身发送流量。这个流量没有以任何方式被修改或改变。这种方法允许我们在TCP(比UDP更可靠但更慢的协议)上工作时连接两点。值得注意的是,大约15%的呼叫没有TURN就不能发出。
现在,你已经对WebRTC这项技术有了一些了解。此外,我们将概述该技术的优缺点,WebRTC解决方案的例子,以及高要求的WebRTC应用程序。默认情况下,这些应用程序基于点对点通信。如果我们需要组织群呼和直播,就必须使用作为协议客户端的服务器。
WebRTC如何工作?
WebRTC的主要重点是提供参与者之间的实时音频和视频通信,参与者使用Web浏览器开始对话,彼此定位并绕过防火墙。
WebRTC利用嵌入在浏览器中的JavaScript API和HTML5。WebRTC应用程序的典型功能如下:
- 发送和接收流音频和视频。
- 检索使用WebRTC API向其他客户端发送和接收数据所需的网络配置数据,例如IP地址,应用程序端口,防火墙和NAT(网络地址转换器)
- 打开/关闭连接并报告错误。
- 传输媒体数据,例如图像分辨率和视频编解码器
为了发送和接收数据流,WebRTC提供了以下可在Web应用程序中使用的API:
- RTCPeerConnection用于音频和视频传输,加密和带宽配置
- RTCDataChannel用于传输通用数据
- MediaStream,用于从数码相机,网络摄像头,麦克风或共享桌面等设备访问多媒体数据流
Internet工程任务组和Web实时通信工作组目前正在开发一套在软件中使用WebRTC的标准。
WebRTC技术的优缺点
WebRTC的主要优点是:
- 有适用于所有平台的实现。
- 使用现代音频和视频编解码器可促进高质量的通信。
- 安全和加密的DTLS和SRTP连接。
- 有一个内置的内容获取机制(桌面共享)。
- P2P =端到端加密。
- 浏览器直接同意。
- 基于HTML5和JavaScript实现管理界面的灵活性。
- 开源。
- 多功能性:只要浏览器支持WebRTC,基于标准的应用程序就可以在任何OS上正常运行。
WebRTC的条件缺点是其维护费用高,这与需要强大的服务器有关。。
正如文章中已经提到的,Web实时通信的基础是视频聊天。包括音频和视频通话、数据共享在内的服务是WebRTC技术的主要应用类型,最著名的例子是WhatsApp、谷歌Hangouts和Facebook Messenger。但是如果我们把所有的业务案例和WebRTC的例子拼凑在一起,我们会发现有很多使用领域。
该技术在远程医疗、监控和远程监控、在线教育、物联网、虚拟现实游戏、流媒体、语音通信网络游戏、应急响应等方面都有很高的要求。
WebRTC的未来:趋势和预测
根据市场研究报告,到2026年,全球WebRTC市场规模预计将达到165.705亿美元。让我们回顾一下,2016年使用WebRTC的产品的全球市场价值为107亿美元。WebRTC的转折点出现在2017年,当时微软Edge和iOS Safari 11开始支持它。
目前,谷歌致力于网络实时通信的发展。因此,WebRTC的未来是很有前景的。通过评估谷歌在该技术上的投资,很容易验证这一点。所有这些都针对代码优化以及功能集的扩展或改进。
2021-2022年与WebRTC相关的主要趋势是:
- 作为W3C标准的WebRTC将迅速发展。
- WebRTC提供的会议规模将会增加,这将影响解决方案的复杂性。值得注意的是,会议中有1000个用户是一个真正的挑战,需要新的架构。
- 其他的工具,如背景模糊和噪声抑制之类已经开发,并将在未来改进,并且这些工具与Chrome中的WebRTC实施相关。
- 与用户隐私和应用程序安全相关的大量活动将被完成。
- VP9和AV1编解码器将实现现代化。
WebRTC的未来与新市场中出现的技术有关。而且,只要WebRTC是W3C标准,任何人都可以影响其发展,这意味着广阔的前景。
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】
原文地址:https://developer.51cto.com/art/202104/660573.htm