1

我正在构建一个用于凸轮广播的网络应用程序。我将 Django 用于 Web 应用程序,并将 coturn 用作(STUN/TURN)信号服务器。我的目标是使用 WebRTC 来实现。

我不知道如何将一个对等点连接到信令服务器以便其他对等点可以访问。所以我需要知道的是如何建立“PeerConnection”。在 Web 应用程序中,我有我需要的一切(我认为):user.id、共享密钥、信令服务器 IP 和端口,......但我不知道如何将它混合到 HTML JS 脚本中以连接 coturn 服务器。

我已阅读 coturn 服务器文档并搜索了一些示例,但找不到这部分的示例。

任何人都可以给我一个例子吗?

4

2 回答 2

3

我想你有点困惑,coturn不是一个信令服务器,它是一个 TURN/STUN 服务器。

信令服务器是您在对等点获得直接对等连接之前在对等点之间交换 sdp、ice 候选者和其他数据的东西,coturn但不会这样做。

我无法解释所有的位,但要点是 STUN 用于提供对等方的公共 IP,而 TURN 用于代理点,用于在无法直接访问时从对等方传输和接收数据,在大多数情况下,您require 是一个 STUN 服务器。他们唯一一次参与您的 WebRTC 应用程序是在您创建PeerConnection对象时,您在配置对象中传递 STUN/TURN 服务器详细信息,例如:

let pc = new RTCPeerConnection({
  "iceServers": [
    {"urls": "stun:example.com"},  // STUN Server address
    {"urls": "turn:example.com", "credential": "test", "username": "test"}  // TURN Server address
  ] 
}); 
于 2016-01-25T01:36:41.493 回答
1

因此,据我所知,我不需要使用 coturn,只需要一个像 SignalMaster 这样的信令服务器或任何其他类似的服务器。我错了吗?

当主机-主机连接不可行时,您仍然可能需要 coTurn 或任何其他 STUN/TURN 服务器来实现点对点或中继连接。ICE 需要 STUN/TURN 才能拥有服务器自反和中继候选人来执行 ICE 并保证连接性。

WebRTC 用作提供-应答模型,因此您需要某种信令方法,如 SIP/Jingle 或其他信令机制来在两方之间交换 SDP。您可以使用 WebRTC 实现上面的一些第三方解决方案,或者您可以编写自己的简单信令堆栈。

于 2016-01-28T07:31:41.200 回答