WebRTC如何处理多对多连接?

rod*_*odi 10 javascript voip stun webrtc

如果我和其他7个用户在一个房间,我想知道WebRTC是否强迫每个用户与其他每个参与者建立连接.

显然它会消耗类似7kb/s*7下载甚至上传的内容,如果连接已经很忙,很多连接都无法处理.相反,对于某种类型的媒体中继,带宽使用量仅为7kb/s,但您将失去对等体之间的带宽适应性.

你知道任何媒体中继,或解决这个问题的方法吗?是适合这种工作的TURN服务器(如https://code.google.com/p/rfc5766-turn-server/)(包括多播)?

Sam*_*ton 6

TURN服务器用作后备中继服务器,以便在由于防火墙或其他网络问题而无法直接进行对等连接时启用连接.(此处提供更多信息:按P键显示演讲者备注.)TURN服务器不适用于媒体分发.

一个多点控制单元可以解决你提到的问题:有一个例子拓扑这个位置.如该幻灯片的说明中所述:

这是一个专门用于分发媒体的服务器,可以处理大量参与者; 它还可以执行智能操作,例如选择性流转发,混合音频或视频或录制.


Mak*_*kes 4

有关 WebRTC 用例的详细信息,请查看https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-use-cases-and-requirements-06 。作者提到了一种使用中央服务器的多用户会议解决方案。因此,使用 WebRTC 建立多用户 A/V 会议的最佳解决方案是拥有这样一个中央服务器,向所有对等方进行音频混合和 A/V“广播”。

这可以避免您在问题中提到的带宽问题。目前,大量初创企业和老牌服务提供商正在开发基于 WebRTC 的会议解决方案,让您最喜欢的网络搜索引擎挑选一些示例。

单独的 TURN 服务器是不够的,因为 TURN 仅用于为无法直接访问的主机(可能是因为防火墙)中继数据。TURN 服务器不会终止 WebRTC 连接。