您的位置:首页 > 理论基础 > 计算机网络

[webrtc] 强制使用tcp传输

2016-08-07 15:54 267 查看
以前笔记,整理

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: