我知道网络浏览器对于同时发起的HTTP请求等有限制。但是,网页上打开的RTCPeerConnection数量是否也有限制呢?
与此有些相关的是:RTCPeerConnection允许在一个连接上发送多个数据流。将多个数据流合并到一个连接中和建立多个连接(例如为每个数据流建立一个连接)之间的权衡有哪些呢?
不确定限制,但我认为大约在256左右(上次我听说的)。最近有人在单个网页上通过http://testrtc.com实现了200个连接。
多个RTCPeerConnection对象非常好用:
话虽如此,它们也有自己的挑战和开销:
每个RTCPeerConnection都有自己的NAT配置 - 因此即使它们连接到同一实体(例如SFU),STUN和TURN绑定和流量也会在RTCPeerConnection对象之间同时进行。这种开销涉及本地资源(例如内存和CPU)以及网络流量(开销不大,但需要处理)
它们通过多个选项卡在Chrome的webrtc-internals视图中显示(这是一个品味问题),并且SSRC可能在它们之间具有相同的值,使得跟踪和调试有点困难(同样是一个品味问题)
单个RTCPeerConnection对象需要重新协商所有内容,每当有人需要添加到列表(或删除)时就需要这样做。
根据《webrtc for the curious》电子书的第14页所述:
group:BUNDLE 捆绑是指在一个连接上运行多种类型的流量。一些WebRTC实现使用每个媒体流的专用连接。应优先选择捆绑。
因此,我认为使用一个RTCPeerConnection
来处理不同类型的流是更好的选择。如果您认为我的观点有误,请指正我。