当前位置:首页 > 创业分享 > 正文内容

什么是WebRTC,使用WebRTC避免3个最致命陷阱

福瑞号2023-01-20 22:14:10创业分享65
作者:'Dmitry Davidov'
WebRTC是一个可以使我们在浏览器或移动App中直接进行音频/视频交流的技术,例如Google Hangouts, Facebook Messenger, 和Discord.另外,它还可以进行P2P文件共享,处理大量音频数据,实现在线视频会议等等,但是当我们到达WebRTC的底层时,事情变得复杂起来。
关于我们WebRTC APP的故事起始于2018年2月份,简单来说,一个叫Redacted的人在开会时想要我们实现一个具有redacted特性的redacted APP。你可以将它理解为实时视频交流。
什么是WebRTC,使用WebRTC避免3个最致命陷阱-图1
陷阱1:不理解WebRTC技术。
起初,我们对WebRTC没有任何实际经验。尽管2011年就发布了WebRTC,但是它的想法包含了许多已经建立的领域,例如VoIP交流,网站开发, 视频流等等。
但是WebRTC是一种新技术,它在浏览器中的实现经常变化,你所了解的WebRTC信息经常有可能是过时或者错误的。
因此我的建议是在你开发App之前充分了解WebRTC:
1.你应该了解关于你必须用来开发WebRTC App的服务器的一切.
2.学习建立点对点连接的发信过程。
3.明确媒体是如何处理传输的。
4.有必要时咨询专家。
你很有可能高估了你对此项技术的了解。另一方面,实现你自己的解决方案需要更多的投资和持久的努力。因此,如果你的资金或时间不足,使用WebRTC平台会更好。
陷阱2:选择了错误的library
在查找了一些已经实现好WebRTC连接的方案之后,我们选择了PeerJS.
什么是WebRTC,使用WebRTC避免3个最致命陷阱-图2
Library是GitHub关于WebRTC目录里最引人注目的一个。它得到了相似项目开发者大量的积极反馈。
使用PeerJS实现WebRTC会使我们致力于逻辑层应用,而不会将我们拉进网络协议之中。
什么是WebRTC,使用WebRTC避免3个最致命陷阱-图3
这个Library甚至包含自己对于发信服务器的实现。
听起来是不是很棒?
请注意:最后一条评论是在3年前。
什么是WebRTC,使用WebRTC避免3个最致命陷阱-图4
你不能使用这样一个过时的library来进行WebRTC项目。WebRTC的发展速度非常快。
任何在几个月之前发布的技术已经过时了,任何在一年前发布的技术已经接近死亡了。
在创建一个快速PeerJS模型后,我们在不同的浏览器中测试它。结果是,不是所有浏览器支持我们的方案。
以下是关于WebRTC 浏览器支持的官方表格。
什么是WebRTC,使用WebRTC避免3个最致命陷阱-图5
但是实际上看起来不太一样。Google Chrome/Chromium具有更好的连接。同时,Edge,Safari, Firefox在Linux上不能建立并保持连接。因此,哪个浏览器真正支持WebRTC?
什么是WebRTC,使用WebRTC避免3个最致命陷阱-图6
即使我们基于PeerJS的方案在未来效果不错,这也不能确保它能在更新之后还能在所有现代浏览器中持续可靠的工作。
最后,我们决定使用另一个library.
我们的研究将我们引到了这两个dozen的library,它们可以用来进行WebRTC项目。然而,在所有的候选者里,只有SimpleWebRTC和EasyRTC符合我们所有的标准。
以下是在选择一个library时你应该考虑的事:
项目是否依然存活
寻找最近几个月更新的library。一年之前的代码可能根本不起作用。同样,了解更新内容和间隔。
是否具有高质量文件。
不同WebRTC library的文件差别很大。标准应该是具有library组成和结构的简介,一个API参考,对暴露出来的属性和方法进行解释,项目的使用场景,关于如何安装,保持并扩展解决方案的信息。
一个高质量的文件将会节省我们和开发者很多时间。它还能帮你更好理解你通过它可以实现什么。
是否了解library的代码并且可以自己维护。
这与第一个陷阱契合。好的library会具有代码实际使用的信息。这将会使得对代码的维护更简单。
是否在开发者中流行
具有一个活跃的社群和来自开发者的支持说明你应该把注意力放在它上面。流行也意味着你可以轻易找到答案,雇到人来进行项目。
这个library是脱机使用还是要基于主机
如果是基于host的,你并不能控制开发者服务器中的部分。脱机library,允许你控制WebRTC实现中的每一方面。
是否具有后端实现?
这将会为你节省很多时间,但是糟糕的是,只有少数library包括了server.
最后,是否可配置?
陷阱3: 使用公有 STUN/ TURN 服务器。
既然我们已经关注了浏览器兼容性问题,另一个问题变得应该优先考虑。任何在本地网络中工作正常的部分。但是当我们试图跨越防火墙时,连接变得不可靠。
我们发现连接的经常中断原因是我们项目使用的 STUN/ TURN服务器。
但是难道我没说WebRTC整体上是P2P并且不需要服务器么?
好吧,这是理论上。实际中,情况更复杂。
让我们考虑一下你想更新Redacted。但是为了建立与Redacted的P2P连接,首先需要一个WebRTC App来定位它。
如果是正常的网站和服务器,你将会通过DNS服务器收到它们的IP地址。
但是redacted不是一个服务器,你不能得到它的IP地址。
大多数电脑没有公共IP。你的‘朋友’可能通过顶级保密LAN来上网,他实际的IP呗隐藏在防火墙内,和NAT设备中。这些设备将他的内部IP指向可用的公共IP。即使是redacted也不一定知道他的外部IP。
一种发现他的IP,并让他知道向哪里发送响应的方法是使用 STUN服务器。
当建立点对点连接时,首先你需要 STUN服务器来揭示公共IP。之后,你可以告诉朋友如何与你连接。他反过来也会做同样的事情。
既然你们互相知道了对方的IP,你可以建立P2P连接。
什么是WebRTC,使用WebRTC避免3个最致命陷阱-图7
但是发现对方IP仅仅是发信过程中的一小步。
它包括发现网络,NAT穿透,建立管理session,确保交流频道安全,处理错误等等。
但是有时NAT设备和防火墙不允许你建立P2P连接。
此时,需要使用 TURN服务器来在两个浏览器间传输数据。
在WebRTC中,当标准方案失败后,使用 TURN服务器是最后一个求助方案。
当使用 TURN服务器时,浏览器不需要知道如何与对方进行链接并发送信息。它们只需要知道中间使用哪个 TURN服务器。
什么是WebRTC,使用WebRTC避免3个最致命陷阱-图8
为了更好的用户体验,你的 TURN服务器应该很强大,具有大带宽,可以处理大量数据。
最后,我们需要建立自己的服务器。现在我们关心连接的问题。
所以为了避免相同的错误,你应该知道关于 STUN/ TURN服务器的哪些信息呢?
1.尽管不使用任何服务器来进行P2P连接是可能的,但是实际项目中需要它们来得到可靠的连接。
2.永远不要寄希望于 STUN(尤其是 TURN)服务器。
3.有了 STUN服务器你不需要一个极其强大的机器。我们的估测表明一个视频通话会增加10Kb发信传输。
4. TURN服务器可以独占资源。对于HD食品的比特率在2-4Mbps之间。这意味着十分钟的WebRTC视频通话会消耗至少150MB。如果用户平均每天打1000次电话,你使用 TURN服务器转接10%的话,你每天将会得到30Gb。没有人会提供一个对所有人免费的 TURN服务器来处理如此大的传输量。
另外一件需要考虑的事是 TURN服务器对于用户位置非常敏感。如果两个英国的用户通过西海岸的 TURN服务器通话,延迟将会很明显的降低通话质量。
什么是WebRTC,使用WebRTC避免3个最致命陷阱-图9
这就是为什么如果你有全球用户,你需要在全球各地有很多 TURN服务器。但是通常3个 TURN服务器和一个 STUN服务器对于WebRTC服务器的建立足够了。根据我们的经验,推荐使用restund或coturn STUN/ TURN服务器。

扫描二维码推送至手机访问。

版权声明:本文由福瑞号发布,如需转载请注明出处。

本文链接:http://furui.com.cn/45214.html

标签: webrtc是什么

“什么是WebRTC,使用WebRTC避免3个最致命陷阱” 的相关文章

中国科幻电影排行榜(国产十大科幻片)

中国科幻电影排行榜(国产十大科幻片)

1、《错位》;谁能想到这是80年代的作品呢!现在的人都拍不出来,绝无可能,历史还真不是永远向前发展的,上次说出这句话是在听窦唯的音乐时。一部先锋默剧。现代艺术审美,红、白、蓝,建筑、雕塑、物理学摆件,楼梯、电话亭廊、一排椅子,极少的人物角色。 2、《流浪地球》;中国导演能拍出这样的硬科幻,看到这样...

i7装机配置方案(12代i7)

i7装机配置方案(12代i7)

有些玩家想要一些一万元左右的电脑配置,CPU想要选用i7 12700KF,整体配置想要性价比高一些。而今天小编分享三套万元12代i7 12700KF独显电脑配置推荐,分别搭配了RTX3070、RTX3080以及RTX3080Ti三款独显,来看看吧! 微星(MSI) i7 12700KF 1270...

因癌症去世的央视主持(央视主持人赵赫因癌症去世)

因癌症去世的央视主持(央视主持人赵赫因癌症去世)

1月10日晚,央视著名主持人赵赫去世,不久前61岁的他才从工作岗位退休,没想到还没有好好安享晚年就传来噩耗。赵赫最为知名的经历就是曾连续主持了10届的315晚会,很多观众都是因此对他熟悉,赢得全国消费者赞誉。早年获得中国播音主持“金话筒”奖、“德艺双馨电视艺术工作者”称号等。 赵赫去世的原因是因为...

10部迪士尼经典电影(10部迪士尼动画电影)

10部迪士尼经典电影(10部迪士尼动画电影)

文|全文共1503字,阅读时间约2.2分钟 说起来动画片,我想不管是孩子还是大人,内心都有几部动画片深藏在内心,且陪伴了你许久的。而迪士尼作为好莱坞大公司,制作了500多部动画影片,塑造了许多家喻户晓的动画角色。 比如米老鼠、唐老鸭、高飞、布鲁托、美人鱼、白雪公主等等,陪伴了一代又一代的人,给我...

中国体育明星有哪些人物(中国体育明星)

中国体育明星有哪些人物(中国体育明星)

中国体育明星有:易建联、张继科、刘翔、李宁、郭晶晶、姚明、孙杨、李娜等。 一、易建联 易建联是中国职业篮球运动员,毕业于广东工业大学,曾获得五届CBA常规赛最有价值球员,三届CBA总决赛最有价值球员,六届CBA总冠军等大奖。具有十分优秀的爆发力和身体素质。很好的推进了他的篮球事业的发展。 二、张继...

好听的纯音乐排行榜前十名(二次元中最好听的十首纯音乐)

好听的纯音乐排行榜前十名(二次元中最好听的十首纯音乐)

hello!大家好,我是小吧,二次元里好听的纯音乐有很多!有的激情澎湃听了瞬间就能提高自己的战斗力;有的温柔宁静听了能让人陷入美好的回忆。那么今天就由研磨来为大家来盘点一下,二次元动画中最火最好听的十首纯音乐吧(本排名数据取自网易云歌曲的播放量以及评论,其他的音乐平台并不作参考!) 第十名 Date...