Webrtc连接转为具有中继候选的奇怪行为

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

我有两个客户端通过webrtc进行通信。 (使用js编写的客户端A,使用aiortc编写的Python客户端B)。现在,发生了客户端A要从移动网络进行连接的情况,因此它需要转弯继电器连接。

我已经设置了一个转弯服务器,看来可以完成他的工作。但是现在只有大约50%的连接成功。我已经发现它们何时成功以及何时失败:

SDP中继信息,如果成功:优惠客户A

a=candidate:3 2 UDP 92217086 172.31.16.8 59986 typ relay raddr 172.31.16.8 rport 59986

响应客户端B

a=candidate:11 1 UDP 92086015 172.31.16.8 49910 typ relay raddr 172.31.16.8 rport 49910

发生故障时的SDP中继信息:优惠客户A

a=candidate:7 1 UDP 92151551 172.31.16.8 49871 typ relay raddr 172.31.16.8 rport 49871

响应客户端B

a=candidate:5820bb1602563a80c76891a80be14933 1 udp 16777215 18.185.84.96 53279 typ relay raddr 172.31.1.103 rport 49244

重要的区别是客户端B的响应中显示的IP地址,在成功的情况下,它是客户端B所在的网络的IP地址,在失败的情况下,它是转台服务器的IP地址(18.185。 84.96)。

实际上,我不明白为什么有时有时会提供轮转服务器的IP,而有时却不提供轮转服务器的IP,这意味着不能使用轮转服务器的IP地址...

任何人有关从哪里开始寻找问题的想法?

webrtc nat rfc5766turnserver
1个回答
0
投票

似乎我们的转弯服务器配置错误。我无法知道配置错误的原因,因为遗憾的是我无法访问转弯服务器的配置。但是我通过在本地计算机上部署一些转弯服务器进行了测试,如果配置不正确,它们的行为类似。通过查看这些转弯服务器的日志,我一直看到401未经授权弹出。因此,我更改了配置,直到授权生效为止。通过此配置,我们部署了一个新服务器,该服务器现在正在运行。

关于在第一次运行时也遇到麻烦的人的配置,这些是我们放入/etc/turnserver.conf并在使用turnserver -v -c /etc/turnserver.conf启动服务器时将其传递给我们的配置:

listening-port=<port>
alt-listening-port=<port>
listening-ip=<listening-ip>
external-ip=<external-ip>
realm=<realm>
fingerprint
lt-cred-mech
user=<user:pw>

在进行该配置之前,我们犯了一些错误,也许它们对有经验的人很服从,但对我们却不是:

  1. 我们在配置文件中有use-auth-secret,使用user时不应启用此功能>
  2. 我们有一个问题,即转弯服务器可以在firefox中使用,但不能在chrome或其他服务器中使用((无法收集中继候选项),这是因为realm在配置中没有配置)>
© www.soinside.com 2019 - 2024. All rights reserved.