Previous notes, finishing
WEBRTC uses UDP transport by default, but it can also be transmitted over TCP.
With TCP transport, servers such as Turnserver,licode,janus and servers are required.
1. If you use Turnserver, you only need the client to keep the relay&&tcp type of candidate, the others are discarded.
2. If you are using a server such as Licode,janus, TCP is not supported by default.
Because they are used at the bottom of the Libnice open-source Ice library, Libnice supports TCP in newer versions.
So you need to compile the new version of Libnice yourself, and then recompile the server
Refer to Libnice documentation https://nice.freedesktop.org/libnice/NiceAgent.html#NiceAgent--ice-tcp
3. Libnice new version also supports TCP heartbeat detection
0.1. 8 support keepalive-="keepalive-conncheck", KeepAlive, NULL );
The time-out is a bit long.
Maximum timeout time in time.h
Total_timeout = Initial_timeout * (2^ (max_retransmissions + 1)-1);
20s-80s around timeout nice_component_state_failed
[WEBRTC] Forcing the use of TCP transport