上一篇我们介绍了开发Webrtc建立P2P的流程,根据该流程,我们进行了实际操作,但是在Webrtc P2P连接中,浏览器控制台出现错误信息:
发起端出现错误如下:“DOMException: Failed to execute ‘setRemoteDescription’ on ‘RTCPeerConnection’: Failed to parse SessionDescription.”;
接收端出现错误如下:“DOMException: Failed to execute ‘addIceCandidate’ on ‘RTCPeerConnection’: Error processing ICE candidate”。
1、分析问题
首先修改js代码进行调试,把从websocket接收到的消息进行打印。
打印后出现以下信息:
于是分析打印信息,里面也有对应的sdp等参数,这样把对应的参数设置进webrtc应该是没问题的。因此要继续查看问题所在,把打印继续延伸到对应每个参数中去。
这样在浏览器出现的打印数据:
在进行深度打印时,原来设置的SDP参数是base64传递的信息,所以设置js方法时,也是设置的base64参数,才导致报错。
2、解决问题
通过websocket发送消息,把sdp加密成base64给去除,只进行一次总参数的base64加密。
把btoa去除即可,这样二端浏览器即可通话。