0

我是 webrtc 的新手,我有一个奇怪的问题,当我处理一对一的用户onaddstream事件时,我得到了它的响应,但是之后第三个人加入房间onaddstream事件不起作用,谁能帮我如何解决这个问题?在这里我已经为它添加了我的整个代码,任何人都可以查看它并帮助我为所有远程用户获取事件

var pc = new RTCPeerConnection(configuration);

pc.onaddstream = (remoteaddstream) => {
      console.log(remoteaddstream);     
};

navigator.mediaDevices.getUserMedia({
                audio: true,
                video: true,
              }).then(stream => {
                var localstreamid = stream.id;
                console.log("stream id :"+localstreamid);          
                pc.addStream(stream);
              }, function(e) {          
                  console.log(e);     
              });
4

1 回答 1

0

您需要多个对等连接来连接超过 2 方,或者您可以让所有方连接到转发数据的服务器。

来自https://medium.com/@khan_honney/webrtc-servers-and-multi-party-communication-in-webrtc-6bf3870b15eb

网状拓扑

Mesh 是多方应用程序最简单的拓扑结构。在此拓扑中,每个参与者都向所有其他参与者发送和接收其媒体。我们说它是最简单的,因为它是最直接的方法。

混合拓扑和 MCU

混合是另一种拓扑结构,其中每个参与者将其媒体发送到中央服务器并从中央服务器接收媒体。该媒体可能包含部分或所有其他参与者的媒体

路由拓扑和 SFU

路由是一种多方拓扑,其中每个参与者将其媒体发送到中央服务器并从中央服务器接收所有其他人的媒体。

于 2021-01-15T04:52:37.250 回答