【发布时间】:2013-07-03 07:20:57
【问题描述】:
我正在尝试将 WebRTC 用于纯粹的去中心化和点对点通信。我正在尝试构建一个 P2P 覆盖网络,其中节点交换其他节点的详细信息,以便它们可以连接到它们。
如果我在节点之间交换 SDP blob (session description objects),它们是否可重用,因为我可以简单地给定这个 blob 和 ICE 候选者就可以建立到节点的连接?
【问题讨论】:
标签: javascript html webrtc sdp
我正在尝试将 WebRTC 用于纯粹的去中心化和点对点通信。我正在尝试构建一个 P2P 覆盖网络,其中节点交换其他节点的详细信息,以便它们可以连接到它们。
如果我在节点之间交换 SDP blob (session description objects),它们是否可重用,因为我可以简单地给定这个 blob 和 ICE 候选者就可以建立到节点的连接?
【问题讨论】:
标签: javascript html webrtc sdp
通常不需要:您需要来自来源 PeerConnection 的报价;不能保证 PC1 的 blob 可以与 PC2 一起使用(并且可能不能)。现在,如果他们已经创建了一个 peerconnection,完成了 CreateOffer,并保持 peerconnection 直到 SDP 被使用 - 那么是的,但这并不是真正的“重用”。
您可能会侥幸逃脱,但现在或将来的各种事情可能会半随机地打断您。最好的解决方案是从源节点创建一个报价,并通过 p2p 网络将其传递给目标节点,然后目标节点可以将响应传回。如果您可以让 PC 保持活动状态以等待传入事务,“源”可以将其用于 createAnswer,并通过 p2p 网络减少一次行程。您需要处理冲突(两个节点尝试使用通过网络分发的相同提议;基本上,失败/重试设置应该在极少数情况下需要处理它)。您还可以在答案中附上一个提议,以防万一发生碰撞。
【讨论】: