3. STUN服务器的用途?
即NAT会话穿越应用程序。双方都至少要了解其另一端的IP地址和分配的UDP端口。
无论使用哪种架构,我们都需要信令服务器来进行注册和显示状态。TURN服务器可以帮助我们遍历网络,并确保内部IP地址可以映射到外部公共ip地址。
点击此处,你可以随时更新或编辑。
现在你能看到浏览器使用STUN服务器请求你的公共IP地址,平时我们是看不见的。这让我学到,魔术从来都不是真正的魔术,幕后有千变万化。如果你想学习魔术,就必须了解背后的这些事。
4. 什么是TURN服务器
中继NAT遍历是一种用于中继网络流量的协议。有时由于防火墙和一些网络相关的工具(也就是NAT),在你使用STUN服务器,设法检索远程对等方的公共IP地址时,你需要一个能公开访问网络,做你媒体中继的一个TURN服务器,这个过程有点像一个中间人帮你传递信息。
5. 如何扩展?4种关键架构供你选择
- Mesh
在端对端的电话会议中共3个客户端,有2个连接会进行加密建立。各方都能保持联系。
- Forwarding(转发)
选择性转发单元在会话中充当智能媒体中继的角色。每个客户端都会连接到SFU一次,以发送媒体。除自己以外的客户端都会再发送一次。这样每个客户端就有n个单向连接(n是已连接客户端的数量)了。尽管此体系结构的连接总数为n的平方,但客户端在连接初始化时仅加密一次,从而减轻了设备本身,尤其是手机的压力。
转发需要其他服务器基础结构,例如SFU等。但其效率很高。只要不激活记录或对数据进行解码,SFU不会尝试解密数据包。
- Mixing(混合)
混合操作依赖于多点控制单元(MCU),该单元在会话中充当高功率媒体混合器的角色。如果每个客户端连接一次MCU,无论有多少客户端在连接,其都只需要处理一个从服务器发送和接收媒体信息的双向连接。
像转发一样,加密和上传也仅执行一次。现在下载和解密也是如此。这种方法在客户端上效率最高,但从服务器角度来看效率最低,因为解码、混合、编码和打包的解包操作完全要在服务器上执行,操作量很大,需要大量服务器资源才能实时完成。
对于有大量活跃用户的应用程序(例如网课)或设备特别受资源限制(例如带宽)的情况,大家可以考虑使用此方法。但这种体系结构要花费一些服务器成本。
- Hybrid(混合)
顾名思义,混合体系架构是Mesh、Forwarding和/或Mixing的组合。你可以根据需求为参与者创建会话。
- 若是简单的两人通话,mesh设置非常简单,服务器资源需求小。
- 若是小组会议、广播和实时活动,Forwardin最合适。
- 若是较大的小组会议或电话集成,Mixing是最合适的的开放性选择。
如何使用Testrtc测试WebRTC
目前来看,WebRTC应用在进行拓展时总会出现问题,同时消耗大量数据。如果你打算扩展自己的webRTC应用,你需要考虑适当的体系架构,以及数据流量问题。
在有500名参与者的压力测试中,我们将其分成几组。其中,有5名参与者仅运行了6.5分钟。但该服务器实际上不到10分钟内就双向传输了52GB的媒体流量。
6. 资源
点击这里,你可以免费获取在webRTC实现中使用的STUN服务器,
我找到了一个讲述较全的youtube视频来帮你了解WebRTC的工作方式。webrtc相关的这些youtube视频都好多年了。WebRTC都有7年历史了,而我现在才掌握了这项技术。希望这篇文章能让你也了解这个“老”技术!
相关阅读:如何创建视频聊天应用程序?(上)
文章地址:https://blog.phuaxueyong.com/post/2020-06-15-how-to-make-a-video-chat-app/
原文作者:JOSHUA PHUA