bounty还有4天到期。回答此问题可获得+500声望奖励。nutella_eater正在寻找来自可靠来源的**答案 *:只有充分的解释和可以理解的解释才能被接受。
我正在尝试在我的Android设备上实现一些WebRTC调用。我有两个模拟器和一个物理设备。
我的信令服务器位于公共网络上。
当我连接android emulator和物理设备时,这是我唯一的字符串
IceServer.builder("stun:stun.l.google.com:19302").createIceServer(),
并且它提供了连接。
但是当我尝试连接两个Android模拟器我必须使用TURN服务器,我已经从metered.ca。
我最后的候选人是:
specific.a96e842f731140c29bacaed182a2da05!0a2333eaae7a4631919cbda03caf160f {'action': 'ice', 'message': {'id': 'video', 'label': 0, 'candidate': 'candidate:123310808 1 udp 41754367 216.39.253.22 55142 typ relay raddr 77.234.203.142 rport 61291 generation 0 ufrag WPAt network-id 3 network-cost 900'}}
specific.a96e842f731140c29bacaed182a2da05!0a2333eaae7a4631919cbda03caf160f {'action': 'ice', 'message': {'id': 'video', 'label': 0, 'candidate': 'candidate:123310808 1 udp 41885439 216.39.253.22 36761 typ relay raddr 77.234.203.142 rport 64965 generation 0 ufrag WPAt network-id 5 network-cost 10'}}
specific.a96e842f731140c29bacaed182a2da05!42e1ee0a15a842239405b5e77f760ab3 {'action': 'ice', 'message': {'id': 'video', 'label': 0, 'candidate': 'candidate:123310808 1 udp 41885439 216.39.253.22 63086 typ relay raddr 77.234.203.142 rport 53284 generation 0 ufrag UyvI network-id 3 network-cost 900'}}
正如您所看到的,它们都找到了RELAY并连接到它。
为什么会这样呢?
1条答案
按热度按时间7xzttuei1#
Android模拟器在NAT设备后面运行,如下所示:https://developer.android.com/studio/run/emulator-networking
如果每个设备具有其自己的NAT并且该NAT不支持NAT发夹(参见例如here那么他们将无法连接彼此。
通过外部TURN服务器可以避免这种情况。您可以在内部网络上运行一个TURN服务器,如coturn,以避免这种情况。