在下是webrtc开发新手,目前遇到了个问题,翻来翻去一直没弄明白。可能英文不佳,看文档看蒙了,所以一直没找到解决方法。
开发环境:
node.js 搭建的服务器
目前是用socket.io做通信
开发目的:
A同学向B同学发起请求,B同学收到请求后,A能观看B的视频直播。
如果有清楚的同学麻烦告知我哈,真的麻烦大家了 O(∩_∩)O~~
问题描述:
目前在搭建两人视频的demo,但是在双方信号交换信息上出问题了。控制台打印出来是这样的:
通信代码如下:
1 var servers = null; 2 localPeerConnection = new RTCPeerConnection(servers); 3 localPeerConnection.onicecandidate = function (evt){ 4 socket.send(JSON.stringify({ "candidate": evt.candidate })); 5 } 6 localPeerConnection.addStream(localStream); 7 localPeerConnection.createOffer(gotDescription, handleError); 8 function gotDescription(evt) { 9 localPeerConnection.setLocalDescription(evt); 10 socket.send(JSON.stringify({ "sdp": evt })); 11 } 12 socket.on('pushMessageDone', function (evt) { 13 if (!localPeerConnection){ 14 console.log(1); 15 call(false); 16 } 17 var signal = JSON.parse(evt); 18 if (signal.sdp){ 19 localPeerConnection.setRemoteDescription(new RTCSessionDescription(signal.sdp), function() { 20 if ( localPeerConnection.remoteDescription.type == "offer" ) { 21 localPeerConnection.onaddstream = function (evt) { 22 remoteVideo.src = URL.createObjectURL(evt.stream); 23 }; 24 }; 25 localPeerConnection.createAnswer(gotDescription, handleError); 26 }); 27 } else { 28 localPeerConnection.addIceCandidate(new RTCIceCandidate(signal.candidate)); 29 } 30 }); 31 function handleError(){}