手动处理WebRTC ICE候选者(来自TURN服务器)

手动处理WebRTC ICE候选者(来自TURN服务器),webrtc,stun,turn,Webrtc,Stun,Turn,我正在研究WebRTC框架,在两个Android移动设备之间建立对等连接,用于语音和视频通话。现在我想把我的解决方案转移到公共网络,在那里NAT扮演着主要角色 我的解决方案也必须在对称NAT中工作,但我的STUN服务器在设备以对称NAT连接时无法建立语音/视频呼叫。因此,我转到了服务器设置,并在以下教程的帮助下成功地完成了设置 我已经成功地将此服务器添加到我的Android应用程序的ICEServer中,并开始获得relayICE候选服务器 我得到的候选人看起来像这样 a=candidate

我正在研究WebRTC框架,在两个Android移动设备之间建立对等连接,用于语音和视频通话。现在我想把我的解决方案转移到公共网络,在那里NAT扮演着主要角色

我的解决方案也必须在对称NAT中工作,但我的STUN服务器在设备以对称NAT连接时无法建立语音/视频呼叫。因此,我转到了服务器设置,并在以下教程的帮助下成功地完成了设置

我已经成功地将此服务器添加到我的Android应用程序的ICEServer中,并开始获得
relay
ICE候选服务器

我得到的候选人看起来像这样

a=candidate:2312680776 1 udp 33562367 115.113.119.170 52972 typ relay raddr 223.227.91.151 rport 25323 generation 0

a=candidate:2312680776 2 udp 33562366 115.113.119.170 64698 typ relay raddr 223.227.91.151 rport 25324 generation 0
现在我的问题开始了:

我应该如何假设这些候选人??(因为我想手动处理这些候选对象,而不是将这些候选对象传递到另一端)

我知道如何理解
srflx
,但不知道
继电器

中继之后是我的全局IP地址和端口。那么这是否意味着我必须收听
raddr
rport
才能捕捉音频/视频数据

我应该如何解析这些候选者并获取音频/视频数据

注意:在wireshark中,我能够在端口上看到来自TURN server的数据包,该端口不等于上述候选端口中的
rport
字段

我在某个地方读到,我必须倾听来自TURN服务器的一些分配响应


我真的需要知道我该怎么做。如果您对本主题有任何帮助,我们将不胜感激(

为什么你需要对这些候选人做些什么?为什么你想手动处理?谢谢回答。我正在集成自己的音频/视频交换机制。因此我需要知道对方的ip地址和端口,并将其提供给我的引擎,以便我的引擎能够处理语音/视频呼叫。这是我的要求。我的Solution与STUN一起工作。但在对称NAT下不工作。这是我的问题。使用TURN时,您不会使用对手的ip和端口,但您将使用TURN服务器地址和端口。TURN为您分配中继,并且您的所有流量都通过该中继的ip和端口是的。我同意您的看法。但我想知道的是基于上述ice候选“ip地址115.113.119.170和端口52972”由TURN服务器分配给我,如果另一方向该ip和端口发送音频/视频数据,我将在端口“25323”接收对??当我不在NAT下时,这是真的。但当我在对称NAT下时,我没有在这个端口上收到任何数据,而是在某个未知端口上收到一些数据。这是预期的吗???@Igor Khomenko:等待您的答复。请继续讨论。我真的想知道我需要如何处理ICE的这些参数我从TURN服务器收到的候选人。