p2p思路适应安卓,iOS,web
一.SDP配置顺序
1.本地PC设置
- 生成offer sdp
[localPC offerForConstraints:constraints completionHandler:^(RTCSessionDescription * _Nullable sdp, NSError * _Nullable error) { }];复制代码
- 将生成sdp通过信令发送给远端并设置本地setLocalDescription
[localPC setLocalDescription:sdp];
// sender sdp to server复制代码
- 接收远端返回的Answer sdp
[localPC setRemoteDescription:answerSDP completionHandler:^(NSError * _Nullable error) {}]; 复制代码
2.远端PC设置
- 接收远端发来的offer, 设置远端PC的sdp
[remotePC setRemoteDescription:sdp completionHandler:^(NSError * _Nullable error) {}];复制代码
- 同时生成answer sdp回给远端, 并设置远端pc的本地sdp
[remotePC answerForConstraints:constraints completionHandler:^(RTCSessionDescription * _Nullable sdp, NSError * _Nullable error){
[remotePC setLocalDescription:sdp completionHandler:^(NSError * _Nullable error) {}];
// 发送Answer的sdp给远端
}];复制代码
二、candiate发送给对端的时机
1.本地PC要在设置setRemoteDescription之后再发送candiate,这期间生成的candiate需要收集起来,等待上面被执行之后在发送。
2.远端PC要在设置生成answer内部再发送candiate,此期间的candiate先收集起来,等待上面发送完毕在发送给对端