我可以重复使用webRTC对等连接对象多用户聊天?



我使用WebRTC作为我的聊天应用程序。我的想法是,每当任何用户加入聊天应用程序时,将创建一个新的RTCPeerConnection对象。聊天室将只允许one-to-one communication

:假设User1User2User3加入了应用程序。如果user1想和user2聊天,那么在这些用户之间将创建一个房间。

user1RTCPeerConnection,user2有自己的RTCPeerConnection。接下来webRTC negotiation(exchange offer, answer和ICE)将通过信令在它们之间发生。数据可通过RTC数据通道共享。

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

我的问题是:

假设user1user2正在进行webRTC通信,则

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

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

之后,我已经关闭了连接(意味着房间被删除)。下一步user1要连接user3.

在这种情况下,我可以重用User1的RTCPeerConnection来为user3创建新的报价吗?

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

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

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

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

最新更新