Peerjs: ICE 失败,添加 STUN 服务器并查看 about:webrtc 了解更多详情

创建于 2018-11-26  ·  18评论  ·  资料来源: peers/peerjs

我是这个 webRTC 的新手。 我在两个流之间创建了一个连接。 它正在工作,但是当传输媒体流时,它抛出这个错误 ICE 失败,添加一个 STUN 服务器并查看about:webrtc以获取更多详细信息。 我试过这样

peer = 新 Peer(id, {
调试:2,
配置:{'iceServers':[
{ url: ' stun:stun.l.google.com :19302' },
{ url: ' stun:stun1.l.google.com :19302' },
]}

但是,我仍然面临这个问题。 对此的确切解决方案是什么? @kidandcat

最有用的评论

我这样做了,但就其本身而言,存在很多问题。 我使用了 COTURN,因为它是 STUN 和 TURN 服务器的免费开源。 @mballabaniapr

所有18条评论

抱歉,文档需要更新,ice 服务器配置如下:

{'iceServers': [{ 'urls': ' stun:stun.l.google.com :19302' }]};

美好的。 有没有免费的stun和turn服务器,或者我需要购买这些服务器? @kidandcat

有很多免费的 STUN 服务器,因为它们只用于启动
连接(它们不需要大量资源)但没有 TURN
服务器免费,因为如果无法建立 P2P 连接,
回退是所有的通信都通过一个 TURN 服务器,所以他们
需要高资源和带宽。

11 月 27 日,El mar. 2018 7:08,RamyaAshika [email protected] escribió:

美好的。 是否有任何免费的眩晕和转身服务器在那里,否则我
需要购买这些服务器吗? @kidandcat https://github.com/kidandcat


你收到这个是因为你被提到了。
直接回复本邮件,在GitHub上查看
https://github.com/peers/peerjs/issues/470#issuecomment-441937144或静音
线程
https://github.com/notifications/unsubscribe-auth/ADrV0qWA1WciYRt65jrYBhB_0b8k8WA1ks5uzNblgaJpZM4YzF3r
.

哦,我可以在没有 TURN 服务器的情况下构建我的应用程序吗? 而且如果我在不同的无线网络中,连接会在 3-5分钟后丢失

当然可以,
但如果有一个奇怪的网络条件,其中 p2p 是完全
不可能,不会回退到 TURN 并且连接将失败,
但这些情况并不常见。 你只需要 STUN 服务器。

格拉西亚斯,
Jairo Caro-Accino Viciana。

11 月 27 日,El mar. 2018 a las 11:00, RamyaAshika ( [email protected] )
escribió:

哦,我可以在没有 TURN 服务器的情况下构建我的应用程序吗? @kidandcat
https://github.com/kidandcat


你收到这个是因为你被提到了。
直接回复本邮件,在GitHub上查看
https://github.com/peers/peerjs/issues/470#issuecomment-441998795或静音
线程
https://github.com/notifications/unsubscribe-auth/ADrV0tpMsIoIJqHgM25BSr_9HX4pCgyVks5uzQ0-gaJpZM4YzF3r
.

好的,这是我正在使用的开源 { urls: ' stun:stun1.l.google.com :19302' } 但是,我仍然收到错误,有时 ICE 失败,添加一个 STUN 服务器并查看about:webrtc更多细节。 您是否知道任何开源 stun 服务器配置以及为什么在 5-10 分钟后,连接丢失? @kidandcat

解决它。 谢谢@kidandcat

@RamyaAshika你是怎么解决的?

我这样做了,但就其本身而言,存在很多问题。 我使用了 COTURN,因为它是 STUN 和 TURN 服务器的免费开源。 @mballabaniapr

@RamyaAshika你是如何部署你的 coturn 服务器的? 我将它部署在 AWS 上,它似乎可以从https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/告诉我的内容中工作,因为有中继,但是当我调用 webrtc connect 时它不起作用将服务器从我托管在 AWS 上的 Web 应用程序转换并获取 ice 候选并给我同样的错误:ICE failed, add a STUN server and see about:webrtc了解更多详细信息

@RamyaAshika
我面临完全相同的问题。 能否请您详细分享您的解决方案。
谢谢你。

同样在这里

我有同样的问题,但我解决了它。
https://gist.github.com/sagivo/3a4b2f2c7ac6e1b5267c2f1f59ac6c6b

你必须提供眩晕+转身

"iceServers": [
          {
            "urls": "stun:vc.example.com:3478"
          },
          {
            "urls": "turn:vc.example.com:3478",
            "username": "coturnUser",
            "credential": "coturnUserPassword"
          }
        ],

您可以指定"iceTransportPolicy": "relay"仅使用中继服务器(不使用 p2p)

@afrokick这段代码在哪里写的? 我用java api开发

我在 LAN 上的 Internet (WAN) 上也有问题,一切都很好。

我会用https://github.com/coturn/coturn coturn 试试看...

我使用以下设置通过互联网而不是 LAN 进行通信。

var fs = require('fs');
var PeerServer = require('peer').PeerServer;

var server = PeerServer({
    port: 3001,
    debug: true,
    path: '/peerjs',
    ssl: {
        key: fs.readFileSync('privkey.pem', 'utf8'),
        cert: fs.readFileSync('fullchain.pem', 'utf8')
    },
    config: {"iceServers": [

      {
        "iceTransportPolicy": "relay",
        "urls": "stun:62.138.7.233:3478"
      },
      {
        "iceTransportPolicy": "relay",
        "urls": "turn:62.138.7.233:3478",
        "username": "ninefingers",
        "credential": "youhavetoberealistic"
      }
    ],
  }
});

我的 coturn 服务器: turnserver -L 62.138.7.233 -a -f -r north.gov

coturn的输出:

0:域名:
0:默认领域:north.gov
0:错误:
配置错误:cli-password 为空,因此 telnet cli 界面被禁用! 请设置一个非空的 cli-password!
0:警告:找不到证书文件:turn_server_cert.pem (1)
0:警告:无法启动 TLS 和 DTLS 侦听器,因为证书文件设置不正确
0:警告:找不到私钥文件:turn_server_pkey.pem (1)
0:警告:无法启动 TLS 和 DTLS 侦听器,因为私钥文件设置不正确
0:要使用的中继地址:62.138.7.233

....

我们需要TLS吗?

为什么在没有适当的解决方案建议时这个问题已被关闭?

此页面是否有帮助?
0 / 5 - 0 等级