WebRTC的TURN服务器是几乎所有WebRTC部署中必不可少的部分,连接WebRTC会话是在多个WebRTC服务器的协助下精心策划的工作,WebRTC中的NAT遍历服务器负责确保正确连接多媒体,这些服务就是STUN和TURN服务。
在浏览器(对等)连接WebRTC之间会话的三种方法:
A、通过本地网络直接连接:
如果两个设备都在本地网络上,则无需做任何特别的工作即可使用对等连接彼此,就是一台设备具有另一台设备的本地IP地址,则它们可以直接相互通信。
B、通过公共IP地址Internet直接连接:
这样就是通过STUN获取的公共IP地址直接连接WebRTC,当设备不在同一个本地网络中时,只能通过公共IP地址来实现相互访问的方式,所以我们的设备不知道公共IP地址,这样就是STUN服务的用武之地,它就是使设备可以向STUN服务器询问“我的公共IP地址是啥”。
C、通过WebRTC TURN服务器路由连接媒体:
使用TURN来中继媒体来连接我们的WebRTC,这种情况知道公共IP地址固然好,但是可能还是够。
这种情况造成的原因有很多种,其中之一是所使用的NAT和防火墙设备不允许发生这种直接流量。想这种情况下,我们通过TURN服务来做为中间公共服务器路由数据,这需要一定的工作和带宽成本。