浏览器如何知道他需要连接到眩晕/转向服务器?

时间:2020-02-19 13:03:27

标签: webrtc stun

例如,我想与WEBRtc共享媒体混乱。 显然,如果我想通过NAT。 我需要使用STUN/TURN服务器。 当WEBRtc开始共享ICE个候选对象时,浏览器如何知道STUN/TURN服务器存在,应该先到那里去?

谢谢。

1 个答案:

答案 0 :(得分:0)

浏览器中的WebRTC开始分析网络连接的状态(实际上,该标准并未指出何时进行此操作,对于许多浏览器,WebRTC在创建相应对象后立即开始研究网络,以免在连接时造成不必要的延迟)。当开发人员在第一步中创建WebRTC对象时,他至少应传递STUN服务器的地址。这是一台服务器,它响应UDP数据包“我的IP是什么”,传输接收该数据包的IP地址。 WebRTC使用STUN服务器获取“外部” IP地址,将其与“内部” IP地址进行比较,以查看是否存在NAT。如果是这样,NAT将使用哪些反向端口来路由UDP数据包?

浏览器上的WebRTC有时会调用onicecandidate回调,并向第二个连接参与者传输SIP数据包和信息。该数据包包含有关内部和外部IP地址,连接尝试,NAT使用的端口等信息。开发人员使用信令在浏览器之间传输这些数据包。使用addIceCandidate()方法将发送的数据包发送到WebRTC。 不久后,WebRTC将建立对等连接。否则将无法进行NAT干预。在这种情况下,开发人员可以传输TURN服务器的地址,该地址将用作外部连接元素:两个浏览器都将通过该地址传输带有语音或视频的UDP数据包。

最初创建RTCPeerConnection时,您通过了STUN / TURN服务器配置。