0

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

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

因此,当远程系统的 Windows 防火墙关闭但防火墙打开时,这可以正常工作,在收集到 ice 候选者后,ice 连接失败。

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

更新

做了一些更多的测试,结果如下

建立连接的客户端上的防火墙是打开还是关闭都没有关系。如果 Firwall 处于打开状态,谁正在获得报价,则连接失败

示例:假设客户 1 正在提出要约,而客户 2 正在接受要约。如果客户端 2 的防火墙打开,则连接失败。如果防火墙关闭,则连接已建立。客户端 1 的防火墙打开或关闭都没有关系。如果客户端 1 和 2 或在同一台计算机上,连接总是成功的。

4

1 回答 1

0

您需要比较您的应用程序使用的 TURN 服务器类型,这些类型不能与那些可以工作的服务器一起工作。chrome://webrtc-internals 显示服务器。

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

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

于 2018-07-14T15:08:42.547 回答