iOS で WebRTC , RTCPeerConnection の setLocalDescription で SessionDescription is NULL. エラーとなる
スポンサーリンク
iOSのWebRTCで受け取ったSDPをセットしてもエラーになってしまうんですけど
iOSの場合は受け取ったデータそのままだとエラーになってしまう場合があるよ
iOS で GoogleWebRTC を使って WebRTC を行おうとしたのですが、Offer の SDP受信でトラブルが発生しました。
呼び出し側から送信された Offer の SDP をWebSocketで受信して、受信したSDPをそのまま以下のようなコードで RemoteSDP としてセットしました。
RTCSessionDescription *remoteSdp = [[RTCSessionDescription alloc] initWithType:RTCSdpTypeOffer sdp:sdp];
NSLog(@"remotesdp.sdp=%@",remoteSdp.sdp);
[self.connection setRemoteDescription:remoteSdp completionHandler:^(NSError * _Nullable error) {
NSLog(@"setRemoteDescription completion");
if(error){
NSLog(@"error %@",error.localizedDescription);
} else {
すると以下のようなエラー表示がログに出力されてしまいました。
2019-01-07 21:04:24.676059+0900 WebKitRTCTest[5927:2005926] error SessionDescription is NULL.
ソケットで受け取った文字列にはちゃんとSDPが入っているので、いまいち正確な原因はわかりません。
試行錯誤の結果、対応策としては
SDP文字列の最後に空行を加える
でした。
sdp = [sdp stringByAppendingString:@"\n"];
こんな感じで remoteSdp を作る前に空行を入れてあげてください。
通信の過程で改行が削られてしまったのかなぁ。。
スポンサーリンク
スポンサーリンク


