Webrtc 被防火墙阻止(iceConnection:失败)

问题描述 投票:0回答:2

我有简单的网络应用程序,

  1. Client1 登录并向 signal.php 建立套接字连接
  2. Client2 登录并再次与 signal.php 建立套接字连接
  3. Client2 通过 signal.php 向 client1 发送报价
  4. client1 向 client2 发送应答
  5. ice候选人交换

因此,当远程系统的 Windows 防火墙关闭时,此方法工作正常,但当防火墙处于 On Ice 状态时,在收集ice候选者后,连接会失败。

我正在使用 xirsys Turn/Stun 服务器。我试图找到一种方法来确保我的应用程序即使在防火墙打开的情况下也能运行。我见过其他没有被防火墙阻止的 webrtc 示例。我在这里缺少什么??????

更新

做了更多测试,结果如下

建立连接的客户端上的防火墙打开或关闭都没有关系。如果防火墙已打开,谁获得了 Offer,则连接失败

示例:假设客户 1 正在发出报价,而客户 2 正在接收报价。如果客户端 2 的防火墙打开,则连接失败。如果防火墙关闭,则建立连接。客户端 1 的防火墙打开还是关闭都没有关系。如果客户端1和2或者在同一台计算机上,则连接始终成功。

javascript html webrtc apprtc
2个回答
0
投票

您需要比较您的应用程序所使用的 TURN 服务器类型,其中哪些类型不可用,哪些可用。 chrome://webrtc-internals 显示服务器。

  • 您使用 TURN/TCP 和 TURN/TLS 吗?
  • TURN 服务器在哪些端口上运行?
  • 对于工作服务,使用哪种连接(请参阅此处了解如何确定这一点)

并且存在连接失败的情况。您的用户体验也需要处理这些问题。


0
投票

我有同样的问题 - Windows 防火墙阻止 WebRTC 连接。有趣的是 - 如果计算机(启用防火墙)开始初始化 WebRTC 连接(发送本地报价),则连接会正确建立。如果计算机(启用防火墙)不开始初始化(仅接收来自第一台计算机的报价),则连接失败:在启用防火墙的计算机上卡住/挂断。 当我禁用防火墙时,一切正常(有两种方式/方向)。是否有可能在不禁用系统防火墙的情况下解决此问题?

© www.soinside.com 2019 - 2024. All rights reserved.