gpt4 book ai didi

javascript - Webrtc,ICE 故障

转载 作者:行者123 更新时间:2023-11-29 21:03:55 27 4
gpt4 key购买 nike

视频通话在同一网络内工作正常。问题是在其他网络上调用计算机时,远程视频不显示。在 chrome 上,我在控制台中没有收到任何错误,但在 firefox 控制台上,我收到了“ICE Failure”

我使用 Node JS 来实现信令服务器和 Google STUN 服务器。

以下是我使用的事件序列:

用户 A:

  1. 创建对等连接(包括getusermedia、addstream)
  2. 注册onIcecandidate处理程序

  3. 发出套接字事件通知用户 B 调用并等待响应

  4. 用户 B 收到Offer 并创建answer

用户 B:

  1. 接收套接字事件并创建Peerconnection(包括getusermedia、addstream)

  2. 注册onicecandidate处理程序

  3. 同时注册“Onnegogiationneeded” 处理程序。 用户 A 没有此处理程序。它被删除,以便用户 B 有足够的时间来创建Peerconnectioncandidate 处理程序,然后创建一个Offer
  4. Onnegogiation被触发时,一个offer被创建并发送给用户A

注意:
1. 在创建 Offer 之前,我在两侧创建了 peerconnectiononicecandidate 处理程序。 2. 这样做是为了确保 Onicecandiate 处理程序在创建报价之前就已在双方准备就绪,并且不会遗漏任何 ICE 候选人

上面的事件顺序有什么问题吗?

最佳答案

我们可以按以下顺序调试和修复问题:

  1. 检查正在交换的 sdp 和候选人。
  2. 如果任何 STUn 候选者我的意思是 srflx 或 prflx 被交换,协商我们需要检查它们是否稍后用于交换媒体。如果没有 STUN 服务器配置不正确,请更正。
    3.如果正在交换的 STUN 候选人仍然面临这个问题,这意味着不同网络中的候选人之一在对称防火墙后面。在这种情况下,需要配置 TURN 服务器。您可以使用任何免费提供的 TURN 服务器或部署我们自己的 TS 或使用一些付费服务。确保您根据防火墙正确配置 TURN 服务器。大多数 TURN 服务器都不是免费提供的。

4.如果您仍然面临问题,这意味着防火墙存在一些问题,您的防火墙中未打开用于 STUN、TURN 服务器或协商端口的所需端口。在这种情况下,在开放网络中测试您的设置。如果可行,则必须打开这些端口/IP 并相应地配置防火墙。

PS:您可能在 chrome 控制台中找不到任何日志,但在 chrome://webrtc-internals 中您会发现非常丰富的信息,这些信息对您调试和解决问题很有用。

关于javascript - Webrtc,ICE 故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45071377/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com