[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 心跳检测
就是超时时间有点长。
最大超时时间在 time.h中
total_timeout = initial_timeout * (2^(max_retransmissions + 1) - 1);
20s-80s左右超时NICE_COMPONENT_STATE_FAILED
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
相关文章推荐
- 百度笔试题2005题目大致是这样的: 第一部分选择题: 有几道网络相关的题目,巨简单,比如第一题是TCP、RIP、IP、FTP中哪个协议是传输层的......。有一道linux的 chown使用题目。其他的全是数据结构的题目!什么链,表
- 在android中如何使用UDP和TCP传输
- 使用sendfile()让数据传输得到最优化,TCP_CORK、TCP_DEFER_ACCEPT和TCP_QUICKACK优化网络
- Linux网络编程之使用TCP传输文件
- ffmpeg强制使用TCP方式读取rtsp流
- 【转】使用TCP协议连续传输大量数据时,是否会丢包,应如何避免?
- 强制使用处于TIME_WAIT的TCP状态的socket地址
- JAVA_WEB 使用TCP/IP Monitor监测HTTP协议传输的数据
- Linux网络编程之使用TCP传输文件
- TCP传输中使用AES加密和gizp压缩(2)--封装TcpUtil,封装后实现登陆
- 在android中如何使用UDP和TCP传输
- Beetle在TCP通讯中使用二进制序列化对象传输
- 使用TCP连续传输文件的问题解决
- 【转】使用TCP协议连续传输大量数据时,是否会丢包,应如何避免?
- TCP/IP模型的一个简单解释(使用telnet进行文本传输,同时用wireshark抓包)
- dns解析IP过多使用TCP传输解析数据
- TCP传输协议中Interval Timer核的设置及其使用
- .winsock控件使用心得(tcp传输)
- 使用TCP协议连续传输大量数据时,是否会丢包,应如何避免?
- Linux网络编程之使用TCP传输文件