我可以重新使用 webRTC Peer Connection 对象进行多用户聊天吗?
Can i re-use webRTC Peer Connection object for Multi user chat?
我已将 WebRTC
用于我的聊天应用程序。我的想法是,只要有任何用户加入聊天应用程序,就会创建一个新的 RTCPeerConnection
对象。聊天室将只允许 one-to-one communication
.
例子:假设User1
,User2
和User3
加入了申请。如果 user1
想与 user2
聊天,那么将在这些用户之间创建一个房间。
这里 user1
有 RTCPeerConnection
,user2
有它自己的 RTCPeerConnection
。接下来 webRTC negotiation
(交换报价、答案和 ICE)将通过信令在它们之间发生。可以通过 RTC 数据通道共享数据。
如果user1
想连接user3
,那么user1
必须离开之前的房间,和user3
进行webRTC协商(意味着之前的房间删除和必须创建新房间)。
现在我的问题是:
假设user1
和user2
正在进行webRTC通信
用户 1RTCPeerConnection.signalingstatechange = have-local-offer
用户 2RTCPeerConnection.signalingstatechange = have-remote-offer
之后我关闭了连接(意味着删除了房间)。下一个 user1
想连接 user3
.
在这种情况下,我可以重新使用 User1 的 RTCPeerConnection
为 user3
创建新报价吗?
如果是,在删除以前的连接时我必须注意什么?因为前面的signalingstatechange
是have-local-offer
和have-remote-offer
。有什么帮助或建议吗?
您不能像那样重复使用 PeerConnection。如果你想在三个用户之间创建一个网状连接,它看起来像。
user-1 <--> user-2
^ ^
| |
---> user-3 <--
每个用户将创建两个 PeerConnections 以与其他用户建立 P2P 连接。
我已将 WebRTC
用于我的聊天应用程序。我的想法是,只要有任何用户加入聊天应用程序,就会创建一个新的 RTCPeerConnection
对象。聊天室将只允许 one-to-one communication
.
例子:假设User1
,User2
和User3
加入了申请。如果 user1
想与 user2
聊天,那么将在这些用户之间创建一个房间。
这里 user1
有 RTCPeerConnection
,user2
有它自己的 RTCPeerConnection
。接下来 webRTC negotiation
(交换报价、答案和 ICE)将通过信令在它们之间发生。可以通过 RTC 数据通道共享数据。
如果user1
想连接user3
,那么user1
必须离开之前的房间,和user3
进行webRTC协商(意味着之前的房间删除和必须创建新房间)。
现在我的问题是:
假设user1
和user2
正在进行webRTC通信
用户 1RTCPeerConnection.signalingstatechange = have-local-offer
用户 2RTCPeerConnection.signalingstatechange = have-remote-offer
之后我关闭了连接(意味着删除了房间)。下一个 user1
想连接 user3
.
在这种情况下,我可以重新使用 User1 的 RTCPeerConnection
为 user3
创建新报价吗?
如果是,在删除以前的连接时我必须注意什么?因为前面的signalingstatechange
是have-local-offer
和have-remote-offer
。有什么帮助或建议吗?
您不能像那样重复使用 PeerConnection。如果你想在三个用户之间创建一个网状连接,它看起来像。
user-1 <--> user-2
^ ^
| |
---> user-3 <--
每个用户将创建两个 PeerConnections 以与其他用户建立 P2P 连接。