【问题标题】:How to supply a STUN server for webRTC如何为 webRTC 提供 STUN 服务器
【发布时间】:2021-01-11 01:20:32
【问题描述】:

我制作了一个非常基本的基于 WebRTC 的视频会议应用程序,它在从我自己的本地网络访问时效果很好。现在下一步是为其提供 STUN/TURN 服务器,以便公开使用。

那里有很多关于如何为本地电话会议设置 WebRTC 的教程,但在使用 STUN/TURN 服务器时几乎没有。

const iceConfiguration = {}
iceConfiguration.iceServers = [
  {
    urls: 'stun:stun1.l.google.com:19302'
  },
  {
    urls: 'stun:stun3.l.google.com:19302'
  },
  {
    urls: 'stun:stun4.l.google.com:19302'
  }
];

// some stuff happens...

localConnection = new RTCPeerConnection(iceConfiguration);

所以,这在本地有效,但是当我与一些朋友远程测试时,它不起作用。可能它们都在对称 NAT 之后,我需要使用 TURN 服务器,但我听说 NAT 配置很少见,所以它似乎至少可以与一个人一起使用。这是设置 STUN 服务器的正确方法吗?我真的只能找到一个教程,网上最多的内容是关于如何构建自己的 TURN/STUN 服务器而不是如何使用......

【问题讨论】:

标签: javascript webrtc


【解决方案1】:
  1. STUNTURN 服务器之间存在区别,Google 提供免费的STUN 服务器供您使用,但不建议在应用程序中使用,因为您希望在出现问题时进行控制,这绝对适合一个用于学习的小项目,如果这是您的情况,并且可以降低您的项目复杂性。 (我也不认为在有一些用户的小项目上使用它有那么糟糕)

  2. 如果不是这种情况,您将需要自己进行设置。网上有很多关于如何做到这一点的教程,但你确实需要一台服务器。它的要点是打开某些端口并使用一些基本工具(如coturn)安装它。我建议您从头到尾遵循这样的指南,例如:

https://medium.com/av-transcode/what-is-webrtc-and-how-to-setup-stun-turn-server-for-webrtc-communication-63314728b9d0

  1. 设置完成后,您需要在应用中使用它,如下所示:

const iceConfiguration = {
    iceServers: [
        {
            urls: 'turn:my-turn-server.mycompany.com:19403',
            username: 'optional-username',
            credentials: 'auth-token'
        }
    ]
}

const peerConnection = new RTCPeerConnection(iceConfiguration);
  1. 涉及很多步骤,并且您需要了解很多不同的细微差别,这个问题非常笼统,所以我试图给您一些指导,但您需要继续阅读自己,因为它是一个巨大而复杂的问题主题,所以要做好准备。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-02
    • 2014-01-03
    • 2021-08-06
    • 2014-06-11
    • 2013-11-09
    相关资源
    最近更新 更多