zoukankan      html  css  js  c++  java
  • [webrtc] 强制使用tcp传输

    以前笔记,整理

    webrtc默认使用UDP传输,但是也可以通过TCP传输。

    使用tcp传输,需要服务器中转,turnserver,licode,janus之类的服务器。

    1. 如果使用turnserver的话,只需要客户端保留 relay&&tcp类型的candidate,其他都抛弃即可

    2. 如果使用的是licode,janus之类的服务器的话,默认是不支持tcp的。

    因为它们底层使用都是libnice这个开源的ICE库,libnice在比较新的版本中才支持tcp的

    所以需要自己编译新版本的libnice,然后重编译服务器

    参考libnice的文档 https://nice.freedesktop.org/libnice/NiceAgent.html#NiceAgent--ice-tcp

    3. libnice新版也支持tcp 心跳检测

    libnice 0.1.8以后支持keepalive-conncheck
    gboolean keepalive = TRUE;
    g_object_set(G_OBJECT(agent), "keepalive-conncheck", keepalive, NULL);

    就是超时时间有点长。

    最大超时时间在 time.h中
    total_timeout = initial_timeout * (2^(max_retransmissions + 1) - 1);
    20s-80s左右超时NICE_COMPONENT_STATE_FAILED

  • 相关阅读:
    Volume 6. Mathematical Concepts and Methods
    git帮助网址
    ubuntu 下安装wine
    ubuntu 通过ppa源安装mysql5.6
    ubuntu qq安装
    ubuntu14.04 fcitx安装
    language support图标消失
    ubuntu root用户登陆
    ubuntu 安装codeblocks13.12
    ubuntu tomcat自启动
  • 原文地址:https://www.cnblogs.com/lingdhox/p/5746393.html
Copyright © 2011-2022 走看看