我可以重新使用 webRTC Peer Connection 对象进行多用户聊天吗?

Can i re-use webRTC Peer Connection object for Multi user chat?

我已将 WebRTC 用于我的聊天应用程序。我的想法是,只要有任何用户加入聊天应用程序,就会创建一个新的 RTCPeerConnection 对象。聊天室将只允许 one-to-one communication.

例子:假设User1User2User3加入了申请。如果 user1 想与 user2 聊天,那么将在这些用户之间创建一个房间。

这里 user1RTCPeerConnectionuser2 有它自己的 RTCPeerConnection。接下来 webRTC negotiation(交换报价、答案和 ICE)将通过信令在它们之间发生。可以通过 RTC 数据通道共享数据。

如果user1想连接user3,那么user1必须离开之前的房间,和user3进行webRTC协商(意味着之前的房间删除和必须创建新房间)。

现在我的问题是:

假设user1user2正在进行webRTC通信

用户 1RTCPeerConnection.signalingstatechange = have-local-offer

用户 2RTCPeerConnection.signalingstatechange = have-remote-offer

之后我关闭了连接(意味着删除了房间)。下一个 user1 想连接 user3.

在这种情况下,我可以重新使用 User1 的 RTCPeerConnectionuser3 创建新报价吗?

如果是,在删除以前的连接时我必须注意什么?因为前面的signalingstatechangehave-local-offerhave-remote-offer。有什么帮助或建议吗?

您不能像那样重复使用 PeerConnection。如果你想在三个用户之间创建一个网状连接,它看起来像。

user-1 <--> user-2
  ^              ^
  |              |
  ---> user-3 <-- 

每个用户将创建两个 PeerConnections 以与其他用户建立 P2P 连接。