搭建webrtc不得不提的就是turn服务器了,在webrtc中,每当两个设备之间无法直接连接时,就需要一个turn服务器来进行中转,同时,在点对点的服务中,也需要安装并运行turn服务器。
但是如果将设备连接到媒体服务器(无论是用于群呼的SFU还是其他类型的服务器),仍然需要一个turn服务器,这又是为什么?实际上,这主要是因为某些防火墙会阻止某些类型的流量。大多数只会阻止UDP,但是有些甚至可能会阻止TCP,这样webrtc就不会建立通信连接。
turn服务器是webrtc基础设施的重要组成部分,因为它们有助于NAT网络穿透。
有一种称为ICE-TCP的机制,可以在webrtc中使用,本质上,它使媒体服务器能够使用TCP传输在sdp中提供ICE候选。这使着媒体服务器将在TCP端口上主动等待来自设备的传入连接。它是Chrome的一项功能,但是现在已在所有支持webrtc的网络浏览器中都可使用。这样是不是TURN/TCP变的不必要呢?这样显然不是,但我们仍然需要TURN/TLS服务。
原因是:先尝试直接UDP到服务器,然后直接ICE-TCP到服务器,最后才TURN/TLS服务器。如果最后TURN/TLS没有连接上,这样就说明webrtc设备与设备直接连接失败。如果使用的是本地网络连接,这意味着在这种情况下不需要使用TURN服务器在进行中继。
编译webrtc协议为什么需要turn服务器?
原创mb60cab503b6b0d ©著作权
©著作权归作者所有:来自51CTO博客作者mb60cab503b6b0d的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
WebRTC 开发实践:为什么你需要 SFU 服务器
本文介绍了 WebRTC 常见的三种网络拓扑结构,并一步步探索了为啥 SFU 是最佳选择。
WebRTC SFU MCU Server Mesh