我已经用于WebRTC我的聊天应用程序。我的想法是,只要有任何用户加入聊天应用程序,RTCPeerConnection就会创建一个新对象。聊天室将只允许one-to-one communication。
示例:假设User1,User2并User3加入了应用程序。如果user1想与之聊天,user2则将在这些用户之间创建一个房间。
这里user1有RTCPeerConnection并且user2有它自己的RTCPeerConnection。接下来webRTC negotiation(交换要约、回答和 ICE)将通过信令在它们之间发生。数据可以通过 RTC 数据通道共享。
如果user1要连接user3,则user1必须离开之前的房间并与之进行 webRTC 协商user3(意味着之前的房间删除和新的房间必须创建)。
现在我的问题是:
假设user1然后user2正在做 webRTC 通信
用户 1 RTCPeerConnection.signalingstatechange = have-local-offer
用户 2 RTCPeerConnection.signalingstatechange = have-remote-offer
之后我关闭了连接(意味着删除了房间)。接下来user1要连接user3。
在这种情况下,我可以重新使用 User1RTCPeerConnection来创建新的报价user3吗?
如果是,在删除以前的连接期间我必须注意哪些事项?因为前一个signalingstatechange是have-local-offerand have-remote-offer。有什么帮助或建议吗?