【问题标题】:Can i re-use webRTC Peer Connection object for Multi user chat?我可以将 webRTC Peer Connection 对象重新用于多用户聊天吗?
【发布时间】:2021-08-07 14:57:32
【问题描述】:

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

示例:假设 User1User2User3 已加入应用程序。如果user1 想与user2 聊天,则会在这些用户之间创建一个房间。

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

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

现在我的问题是

假设 user1user2 正在做 webRTC 通信

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

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

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

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

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

【问题讨论】:

  • 使用 peerjs ,你只需要为其他用户发送每个 peer.id

标签: javascript webrtc rtcpeerconnection signaling


【解决方案1】:

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

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

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

【讨论】:

  • 感谢您的回复:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多