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

  • 相关阅读:
    帆软报表实现全选全不选的功能
    knowledge_others
    skills_kafka
    skills_operation
    problems_others
    skills_windows
    c语言标识符
    快速排序法
    字符串处理scanf("%d%*c",&n);
    Byte.parseByte(String s,int radix)的解释
  • 原文地址:https://www.cnblogs.com/lingdhox/p/5746393.html
Copyright © 2011-2022 走看看