trickle-ice官网介绍:
https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/canTrickleIceCandidates
1.trickle-ice是什么:
普通模式:ice收集完所有的candidates之后再send offer/answer
trickle-ice: 在成功完成createoffer和createanswer之后,发送去对等端之后再持续发送candidates直至对应的candidates成功建立连接的一个机制。
2.trickle-ice要解决的问题:
#加快连接建立,提升用户体验
#该方法在端口之间不同步传递潜在网络路径,因此可以尽快建立连接(此解释来自网络)。
注:①sdp中需要添加标志着trickleice的a行:a=ice-option:trickle , candidate的发送格式大概如下: 其中媒体行的内容以及格式是写死的,当candidates收集完毕,iceState的值为complete的时候,每个m行的candidate信息里都需要添加a=end-of-candidates,candidates的信息收集并累积发送,如果mid值相同,则添加新的candidate a行到对应的m行的candidate信息块里边,如果不同,则添加一组新的参数:
m=audio 9 RTP/AVP 0
a=mid:0
a=ice-ufrag:8fKe
a=ice-pwd:sffr0HfwTUtPC0RnQu7TF+/l
a=candidate:30965890 1 udp 2122260223 192.168.131.123 64312 typ host generation 0 ufrag 8fKe network-id 1 a=candidate:30965890 1 udp 2122260223 192.168.131.123 64313 typ host generation 0 ufrag 8fKe network-id 1
a=end-of-candidates
m=audio 9 RTP/AVP 0
a=mid:1
a=ice-ufrag:8fKe
a=ice-pwd:sffr0HfwTUtPC0RnQu7TF+/l
a=candidate:30965890 1 udp 2122260223 192.168.131.123 64314 typ host generation 0 ufrag 8fKe network-id 1
a=candidate:30965890 1 udp 2122260223 192.168.131.123 64315 typ host generation 0 ufrag 8fKe network-id 1 a=end-of-candidates
注②: 去掉sdp中的 a=ice-option:trickle行,并在包含candidate的m行里添加a=end-of-candidates行