35

我正在开发一个 webrtc 应用程序,并且必须实现以下 TURN 服务器。

https://code.google.com/p/rfc5766-turn-server/

我正在关注本教程。

http://www.dialogic.com/den/developer_forums/f/71/t/10238.aspx

它说在创建 RTCPeerConnection 的 javascript 代码中引用 TURN 服务器如下。

var pc_config = {"iceServers": [{"url": "stun:stun.l.google.com:19302"},
  {"url":"turn:<turn_server_ip_address>", "username":"my_username", "credential":"my_password"}]};

pc_new = new webkitRTCPeerConnection(pc_config);

我有点困惑,为什么我们要引用 Google 的公共 STUN 服务器。我以为 RFC5766 TURN 服务器里面有 STUN。

RFC5766 只是 TURN 服务器吗?而不是 STUN 服务器?我们不能使用 Google 提供的 STUN 服务器来实现我们自己的 STUN 服务器吗?

抱歉这么幼稚的问题。我是 WebRTC 的新手。

谢谢。

4

2 回答 2

18

TURN 是 STUN 的扩展,所以 TURN 服务器也有 STUN 的功能。

https://code.google.com/p/rfc5766-turn-server/也可用作 STUN,因此您可以尝试编写如下内容:

var pc_config = {
    "iceServers": [{
        "url":"turn:my_username@<turn_server_ip_address>",
        "credential":"my_password"
    }]
};
    
pc_new = new webkitRTCPeerConnection(pc_config);
于 2014-03-07T08:44:51.007 回答
3

最近我正在捕获我的 Kurento WebRTC 服务器数据包,并意识到它一直在使用这个www.stunprotocol.org域来处理 STUN 请求。一个名为的工具stuntman可以为您创建一个简单的 STUN 服务器。

只需在 Linux 主机上执行以下操作:

  1. sudo apt-get update
  2. sudo apt-get install stuntman-server
  3. stunserver --mode full --primaryinterface 100.101.102.103
    (应将 100.101.102.103 替换为您的 IP 地址)
  4. 打开此链接以测试您的 STUN 服务器。

例如STUNTURN URI:

stun:100.101.102.103:3478

通过我提到的这个程序,我的机器上一切正常。

于 2019-11-13T08:21:01.483 回答