gpt4 book ai didi

javascript - 是否可以使用 ICE 直接连接,然后在 WebRTC 中直接进行点对点信令?

转载 作者:太空宇宙 更新时间:2023-11-04 14:19:06 27 4
gpt4 key购买 nike

我一直在考虑使用 WebRTC 以分散的方式设置 RTCPeerConnection。这意味着仅使用服务器进行 NAT 穿越

我知道信号处理是必要的,但是是否可以直接与对等点交换RTCSessionDescription对象,而不必使用另一个通信 channel ?

最佳答案

假设您正在尝试将对等点 A(IP 地址 1.2.3.4)与对等点 B(IP 地址 5.6.7.8)连接。

   A                      B
1.2.3.4 5.6.7.8

您需要做的第一件事是让至少其中一个知道另一个对等方的 IP:PORT,以便他可以发起连接。

一旦 A 知道 B 的 IP 地址,A 就可以通过其 IP:PORT 端点联系 B。

一开始,它们之间没有 channel ,以后会有,但是现在,您只是不知道要将数据发送到哪里(IP:PORT?)

现在我们需要以某种方式获取 A 的 IP:PORT 并让 B 知道它。 WebRTC 中没有定义标准,因此您可以选择任何方式将 A 的 IP 地址发送给 B。(Websocket、Google 的 Channel API,如果您足够疯狂,甚至可以使用电子邮件)。

  Some communication channel
(i.e. Websocket)
/ \
1.2.3.4:port \
/ \
/ >
A B
1.2.3.4 5.6.7.8

现在,B 知道了 A 的端点,他可以发起调用、发送消息、创建数据通道(现在我们知道了,太晚了吧?:)

用另一个问题来回答你的问题……你怎么知道将 A 的 IP:PORT 发送到哪里?一开始没有 channel ,所以我们需要一些其他类型的通信。

不同的情况是,如果您已经以某种方式将它们连接起来,使用@tom 帖子中提到的某种 DHT(但这基本上也只是 Websocket 等的替代方法)

在评论中回答你关于 DHT 的问题,为什么在网络浏览器中构建 P2P DHT 如此复杂/不可能到现在的原因是我们没有浏览器之间直接通信的可能性peers - 这基本上就是 DataChannel API 今天给我们的。

DHT 的要点是点之间存在通信,它们之间交换/转发/保存信息(在本例中为 RTCSessionDescription),我个人认为使用 DataChannel 是最好的方法(可能是今天唯一的方法)如何做这个。

正如我在帖子中提到的,DHT 只是另一种通信方式,用于将您的端点信息传输到其他对等点。您可以使用集中式服务器解决方案,但如果它不适合您的设计,您可以改用 DHT。

关于javascript - 是否可以使用 ICE 直接连接,然后在 WebRTC 中直接进行点对点信令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16954585/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com