0

这里有两个非常相似的问题,但都没有得到回答:

rfc5766-turn-server 作为 webrtc 应用程序问题 1 的 TURN 和 STUN。说“使用 rfc5766-turn-server 足以充当 TURN 和 STUN 服务器,还是我还需要运行 stun 服务器”。

来自 TURN 服务器的缺少接力候选人谈到缺少接力候选人,我只turn提出请求时看到的效果。

我们已经coturn配置turnsuse-auth-secret使用https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/进行测试。

  • 当我在没有密码的情况下发出 stun 请求stun:hostname:5349时,我看到了srflx候选人(我的外部 IP)。
  • 当我提出轮流请求时turns:hostname:5349[username:password],我看到了relay候选人(TURN 服务器的公共地址)。

这看起来不错,但我需要向同一台服务器发出 2 个请求吗?不应该turn包括stun并给我srflxrelay候选人吗?

  • 我可以配置coturn为在一个请求中返回两者吗?
  • 还是客户必须同时提出这两个请求?是这样,所有浏览器在使用 WebRTC 时都会正确执行此操作吗?
4

1 回答 1

2

如果您在客户端中配置了 TURN/UDP,则无需配置与 STUN 服务器相同的服务器。

TURN over UDP 将自动返回一个 srflx 候选者,你应该能够在涓涓冰测试页面上看到它。如果您查看在 Wireshark 中交换的数据包,您会看到 * STUN 绑定请求和包含服务器在 xor-mapped-address 字段中看到的公共 ip 的绑定响应以及 * STUN (TURN) allocate其响应也包含异或映射地址的请求

TURN over TLS 或 TURN over TCP 不会这样做,因为这不适用于 udp 打孔。

于 2019-02-06T08:53:36.490 回答