スポンサーリンク
iOSのWebRTCで受け取ったSDPをセットしてもエラーになってしまうんですけど
iOSの場合は受け取ったデータそのままだとエラーになってしまう場合があるよ
iOS で GoogleWebRTC を使って WebRTC を行おうとしたのですが、Offer の SDP受信でトラブルが発生しました。
呼び出し側から送信された Offer の SDP をWebSocketで受信して、受信したSDPをそのまま以下のようなコードで RemoteSDP としてセットしました。
1 2 3 4 5 6 7 |
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文字列の最後に空行を加える
でした。
1 |
sdp = [sdp stringByAppendingString:@"\n"]; |
こんな感じで remoteSdp を作る前に空行を入れてあげてください。
通信の過程で改行が削られてしまったのかなぁ。。
スポンサーリンク
スポンサーリンク