我有两个客户端通过 webrtc 进行通信。(客户端 A 用 js 编写,客户端 B 用 aiortc 用 Python 编写)。现在碰巧客户端 A 想要从移动网络连接,因此它需要转接中继连接。
我已经设置了一个似乎可以完成他的工作的转向服务器。但现在只有大约 50% 的连接成功。我已经知道他们什么时候成功,什么时候失败:
成功时的SDP中继信息:
Offer Client 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中继信息:
Offer Client 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) .
其实我不明白为什么它有时会给出turnserver的IP而其他时候没有,这意味着turnserver的IP地址无法使用......
任何人有任何想法,从哪里开始寻找问题?