NodeJS 无法连接到某些设备的对等设备[WebRTC]

hlswsv35  于 2023-06-22  发布在  Node.js
关注(0)|答案(2)|浏览(208)

我正在开发一个使用webRTC的视频通话应用程序。我只在本地网络中使用此应用程序。在测试中,成功制造的几个连接装置连接得非常好。但是,有一些设备,我不知道为什么他们不能打电话给一些设备。它的行为很奇怪。下面是我做的一个呼叫模拟:

  • 所有设备连接到同一本地网络/WiFi,
    • 有问题的设备以粗体显示
  • Windows [A]-> MacOs =成功
  • MacOs-> Windows [A]=成功
      • Windows [B]**-> MacOs =失败
  • MacOs->Windows [B]=成功
  • Windows [A]->Windows [B]=成功
      • Windows [B]**-> Windows [A]=失败
      • Windows [B]**-> IOS =成功
  • IOS->Windows [B]=成功
      • Windows [C]**->普通桌面设备=失败
  • 正常桌面设备->Windows [C]=成功
      • Windows [C]**-> IOS =成功
  • IOS->Windows [C]=成功

这是我从chrome://webrtc-internals/得到的屏幕截图

    • 问题设备的连接状态**

状态仍为新状态,未更改

    • 接收问题设备呼叫时的被叫连接状态**

    • 连接成功示例**

我使用谷歌的Stun服务器,我也尝试过不使用iceServers。结果还是一样。我想如果我们只是在本地网络中,我们不需要一个眩晕/转向服务器,对吗?
奇怪的是,有问题的设备不能向其他台式机进行呼出呼叫,但是可以与移动设备进行/接收呼叫。而有问题的设备之间也无法连接,因为在我看来,问题是有问题的设备无法拨打电话。
我感到困惑的是,是什么原因导致一些设备无法像上面的情况一样拨打外呼?我相信这不是代码中的错误,因为调用在其他正常设备上完美运行。我尝试了各种方法,直到我在这个时候使用Perfect Negotiation Logic,但结果还是一样。
也许有人经历过类似的事情,可以在上面的情况下提供解决方案。非常感谢

txu3uszq

txu3uszq1#

在本地网络中,我们不需要直接击晕,它将连接。我们必须集中精力,如果我们试图从公共到私有和私有到公共进行调用,任何防火墙限制或任何可达性问题,当收集候选或可能是对称NAT问题。

qq24tv8q

qq24tv8q2#

最后我终于找到了问题所在。是的,问题出在防火墙上。看起来webRTC使用的UDP端口被防火墙阻止了。解决方案是在防火墙上打开一个UDP端口,这样就不必关闭防火墙。我的情况发生可能是因为我只在一个本地网络上使用webRTC,并且不需要STUN/TURN服务器,所以它需要一个UDP端口来连接到对等体。

相关问题