【问题标题】:WebRTC— use TURN as a signaling server?WebRTC——使用 TURN 作为信令服务器?
【发布时间】:2021-10-05 01:03:21
【问题描述】:

我在 WebRTC 应用中遇到以下情况:

  1. 我想在所有情况下都使用 TURN — 我不需要/不想支持 P2P。
  2. 两个参与者都可以调用 API 来获取 TURN 服务器的凭据和主机名。

问题:既然 TURN 服务器已经可以充当参与者之间的数据中继,是否也可以利用它作为信令服务器来交换 SDP 报价?

当两者之间已经存在完美的 TURN 中继时,为客户端创建单独的信号通道似乎有点多余。

是否可以硬编码一个简单的 SDP 报价,在两者之间建立数据通道,然后使用该数据通道升级与视频和音频报价的连接?

【问题讨论】:

  • 您当然可以在同一台机器上运行 TURN 服务器和信令服务器,但信令是您需要根据您的特定需求和规则自定义的业务逻辑,因此您不能使用标准 TURN 服务器为了那个原因。此外,由于 TURN 可以使用大量带宽和 CPU,您可能不想将这两个功能混为一谈; TURN 服务器通常需要能够自动扩展,而不是太多。

标签: webrtc turn


【解决方案1】:

没有。 TURN 服务器正在帮助创建中继 ICE 候选者(通过打开一个随机 UDP 端口)。

您无法对简单的 SDP 进行硬编码,因为需要在建立连接之前通知 ice-ufrag/ice-pwd 和 DTLS 指纹以及候选者。 您可以创建一个仅数据通道连接,然后向 SDP 发出信号以通过它升级到音频/视频/数据。 https://webrtchacks.com/the-minimum-viable-sdp/ 对此进行了一些讨论,但请注意源代码有点过时了。

【讨论】:

  • 您确定您没有将 STUN 与 TURN 混淆吗?使用 TURN 时,您都在与已知端口上的知名主机通信,对吗?您永远不会在对等方之间建立连接——你们都知道建立连接所需的确切主机和端口。
  • TURN 服务器侦听定义明确的端口(在 TURN url 中指定),然后代表您打开一个随机端口。然后对方通过信令获知这个端口(和 ip)。 webrtcforthecurious.com/docs/03-connecting/#turn 有更多信息。
猜你喜欢
  • 1970-01-01
  • 2021-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-08
  • 1970-01-01
  • 2017-11-01
  • 2015-03-21
相关资源
最近更新 更多