//初始化ice,感觉这个逻辑跟谷歌官方的webrtc正好是相反的逻辑,正常应该县判断Host能不能通,不通在Stun,Stun也不通则走Turn中继。
void yang_ice_initIce(YangIceSession *session){
//根据candidateType进行初始化
switch(session->candidateType){
//Host则什么也不做
case YangIceHost:
break;
//Stun的话发起StunServer请求,请求失败的话降级为Host
case YangIceStun:
if(yang_ice_requestStunServer(session)!=Yang_Ok){
yang_error("request stun server fail,change to host");
session->candidateType=YangIceHost;
}
break;
//Turn的话初始化Turn,turn初始化失败的话,发起StunServer请求,请求失败的话降级为Host
case YangIceTurn:
if(yang_ice_initTurn(session)!=Yang_Ok) {
yang_error("request turn server fail,change to stun");
session->candidateType=YangIceStun;
if(yang_ice_requestStunServer(session)!=Yang_Ok){
yang_ice_closeTurn(session);
yang_error("request stun server fail,change to host");
session->candidateType=YangIceHost;
}
}
break;
}
}
metartc5_jz源码阅读-yang_ice_initIce
最新推荐文章于 2026-01-03 15:55:51 发布
该文章描述了一个ICE(交互式通信环境)初始化函数,根据candidateType决定使用Host、StunServer还是Turn。如果Stun或Turn服务器请求失败,会依次降级并尝试其他选项。
1996

被折叠的 条评论
为什么被折叠?



