//初始化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
最新推荐文章于 2024-10-16 17:15:18 发布