在没有服务器的情况下建立 WebRTC 连接,单向

Establishing a WebRTC connection without a server, one-way

我想在没有信令服务器的情况下使用 WebRTC 在两个对等点之间发送消息。我正在使用 QR 码发送连接描述,我找到了一个实现这个的例子:

https://github.com/TomasHubelbauer/webrtc-qr-signaling-channel

但是需要双向扫描二维码。我想知道是否可以仅从 phone 扫描二维码,但仍然建立连接?

概念上,我是这样想的:

  1. ClientA 显示二维码,本质上是在说“这是连接到我的方法。”
  2. ClientB 扫描它,现在知道如何找到 ClientA。
  3. ClientB 向 clientA 发送“这里是如何连接到我”。
  4. 他们现在都知道如何找到对方并与之交谈。

但是,在查看 WebRTC 文档时,这似乎是不可能的。如果这是不可能的 - 那么为什么?

我非常怀疑这是可能的。

在 offer/answer 交换期间,每个对等点都会生成一个 self-signed (D)TLS 证书并在 SDP 中包含其加密哈希(“指纹”)。如果没有答案的 SDP,提供方将无法验证回答方。

但是,您可以通过在其中一个对等点上实施信令服务器来实现相同的用户体验。 QR 码将包含信令服务器的 URL 以及身份验证数据,一旦连接,两个对等点可以执行传统的 offer/answer SDP,甚至可以滴入 ICE 候选者。