【发布时间】:2021-08-07 14:57:32
【问题描述】:
我在聊天应用程序中使用了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 通信
用户 1 RTCPeerConnection.signalingstatechange = have-local-offer
用户 2 RTCPeerConnection.signalingstatechange = have-remote-offer
之后我关闭了连接(意味着房间已删除)。下一个user1想和user3联系。
在这种情况下,我可以重新使用 User1 的RTCPeerConnection 来为user3 创建新的报价吗?
如果是,在删除以前的连接期间我必须注意哪些事项?因为之前的signalingstatechange 是have-local-offer 和have-remote-offer。有什么帮助或建议吗?
【问题讨论】:
-
使用 peerjs ,你只需要为其他用户发送每个 peer.id
标签: javascript webrtc rtcpeerconnection signaling