zoukankan      html  css  js  c++  java
  • 硬核讲解:编译webrtc协议为什么需要turn服务器?

    大家知道我们的WebRTC开发已经到达一个新的阶段了,目前EasyGBS国标视频云服务内已经支持WebRTC协议视频流的输出了,欢迎大家体验。

    搭建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编译感兴趣,欢迎持续关注我们的更新。

     
  • 相关阅读:
    OSCache报错error while trying to flush writer
    html 输入框验证
    Struts2 一张图片引发的bug
    Html 小插件10 即时新闻
    String
    内部类
    多态
    抽象&接口
    继承
    封装
  • 原文地址:https://www.cnblogs.com/TSINGSEE/p/14889332.html
Copyright © 2011-2022 走看看