【问题标题】:WebRTC: ICE failed error in browser with Mesibo Video/Audio chatWebRTC:使用 Mesibo 视频/音频聊天的浏览器中的 ICE 失败错误
【发布时间】:2021-01-19 16:12:51
【问题描述】:

我正在使用 Mesibo Javascript SDK 在 React 和 Django 中开发视频/音频聊天应用程序。

它在同一个网络上本地工作,但是当尝试通过不同的网络连接时,Firefox 浏览器给我这个错误

WebRTC:ICE 失败,添加 TURN 服务器并查看 about:webrtc 了解更多信息 详情。

在 Chrome 中,此错误不会出现,但视频/音频聊天仍然无法正常工作并给我

Mesibo_OnCallStatus:50。

我注意到 Mesibo 使用 stun:stun.l.google.com:19302 作为 STUN 服务器并尝试将其更改为 stun:stun.l.google.com:19305 但没有用。我什至创建了一个numb.viagenie.ca 帐户来添加一个运行了几分钟的 TURN 服务器,然后给出了这个错误

webrtc: ice 失败,你的回合服务器似乎坏了。

检查https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/ 时,chrome 会为上述所有转/眩晕服务器提供错误代码:701,而 firefox 则不会。

根据 Mesibo 文档的建议,我的网站使用 https 是完全安全的,并且从 Django 后端调用 Rest API。我在 react.html 文件中调用https://api.mesibo.com/mesibo.js 作为脚本标签。我也能成功获得

Mesibo_OnConnectionStatus=1

并且来电通知也有效。接听电话后,通话状态从 3 变为 5,并在一段时间没有呈现任何视频/音频后出现此 webrtc 错误。

请提出任何提示/解决方案。

【问题讨论】:

    标签: javascript reactjs django webrtc mesibo


    【解决方案1】:

    要启用 webrtc 进行远程调用,您需要自己的 trun 服务器。

    Google 不提供免费的 trun 服务器。

    Free Turn 服务器在生产中无法正常工作。好吧,你可以试试运气。不是所有的人都无聊

    您需要在 DigitalOcean、AWS 等云上创建自己的。 或者为了测试目的,我有一个技巧

    解决方案。

    1. 如果你在做测试

      也许您可以尝试使用他们在这里使用的一些 Google TURN 服务器 https://test.webrtc.org/,我刚刚检查了浏览器控制台,发现了这个:

    enter image description here

    不确定 LifeTime。但你会明白的。

    1. 对于生产,我会建议使用 DigitalOcean 5$ 计划,这是非常芯片。

      然后您安装您自己的 TURN 服务器,在上面使用 coturn

    如果你愿意,你也可以使用 Node-turn 这对于节点后端非常有用。

    还有设置的heroku选项

    我不知道有没有 django 或 python 选项。

    (提示:尝试在托管服务器上构建转服务器。确保服务器运行的端口已打开)

    【讨论】:

    • 我检查了 test.webrtc 中提供的轮流服务器,发现它们没有凭据就无法工作。另外,既然 Mesibo 是一个定价通信 API,它不应该也为我们提供 TURN 服务器吗?
    • 谢谢,我添加了 test.webrtc.org 中提到的转弯和眩晕服务器,它开始工作了。
    • 好吧,我不熟悉 mesibo api,所以我认为它会像 numb 。所以他们必须有一些东西在那里 sdk 正确地检查那里的文档。如果我发现了什么我会告诉你的
    • 我刚刚检查了那里的文档。如果您已经拥有 api 密钥,也许您可​​以从 here 关注那里的文档
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-24
    • 1970-01-01
    • 1970-01-01
    • 2013-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多