5分钟了解WebRTC应用开发

译文
开发 开发工具
WebRTC的主要重点是提供参与者之间的实时音频和视频通信,参与者使用Web浏览器开始对话,彼此定位并绕过防火墙。

【51CTO.com快译】简单地说,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的主要优点是:

  1. 有适用于所有平台的实现。
  2. 使用现代音频和视频编解码器可促进高质量的通信。
  3. 安全和加密的DTLS和SRTP连接。
  4. 有一个内置的内容获取机制(桌面共享)。
  5. P2P =端到端加密。
  6. 浏览器直接同意。
  7. 基于HTML5和JavaScript实现管理界面的灵活性。
  8. 开源。
  9. 多功能性:只要浏览器支持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相关的主要趋势是:

  1. 作为W3C标准的WebRTC将迅速发展。
  2. WebRTC提供的会议规模将会增加,这将影响解决方案的复杂性。值得注意的是,会议中有1000个用户是一个真正的挑战,需要新的架构。
  3. 其他的工具,如背景模糊和噪声抑制之类已经开发,并将在未来改进,并且这些工具与Chrome中的WebRTC实施相关。
  4. 与用户隐私和应用程序安全相关的大量活动将被完成。
  5. VP9和AV1编解码器将实现现代化。

WebRTC的未来与新市场中出现的技术有关。而且,只要WebRTC是W3C标准,任何人都可以影响其发展,这意味着广阔的前景。 

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】


责任编辑:黄显东 来源: hackernoon.com
相关推荐

2012-06-28 10:26:51

Silverlight

2021-01-27 18:15:01

Docker底层宿主机

2011-07-11 09:58:52

2021-01-06 05:23:15

ServiceMesh网络阿帕网

2015-01-05 09:35:54

云计算应用程序开发

2009-11-05 14:53:54

Visual Stud

2018-05-06 16:26:03

关联规则数据分析关联规则推荐

2018-03-12 21:31:24

区块链

2021-10-19 07:27:08

HTTP代理网络

2022-12-16 09:55:50

网络架构OSI

2020-10-13 18:22:58

DevOps工具开发

2023-09-07 23:52:50

Flink代码

2018-03-23 11:56:09

相似性推荐推荐算法推荐

2017-07-06 08:12:02

索引查询SQL

2018-03-12 14:37:50

区块链比特币架构

2022-07-18 06:16:07

单点登录系统

2009-11-09 12:55:43

WCF事务

2021-05-17 20:13:50

数仓操作型数据库

2021-02-03 11:20:41

Docker架构容器

2023-01-27 18:42:24

PythonWeb应用
点赞
收藏

51CTO技术栈公众号