webrtc数据通道不工作

时间:2015-07-27 08:46:17

标签: javascript webrtc

我正在尝试使用webrtc数据通道设置文字聊天。 我的网络是一个私人网络所以我不能使用像peerjs或类似的任何依赖或框架。 我在java play server上发布了我的项目 我有一个webrtsPeerConnection对象,用户可以选择该对象来启动连接或接受来自其他人的连接。 问题:为启动呼叫的用户设置并激活数据通道。 但对于加入呼叫数据通道的用户,请不要激活,并且onDataChannel事件永远不会触发。 任何建议??

提前致谢!

我的代码java脚本:

// init peer connection and data channel objects  

 var pc = new RTCpeerConnection(null,null);
 var DC,DCnam;
 function InitConnection(){
 //created RTCpeerConnection
 createDataChannel();

 pc.createOffer(function(desc){

 pc.setLocalDescripyion(desc,function(){},function(){})

    enter code here

  })
 }
 //create data channel

 function createDataChannel(){

 DC = pc.createDataChannel(DCname,{
 reliable:true
  });
 }
 //when user A call user B set remote description and create answer  
 function CheckCalls(){

 &http.get("/checkCslls").success(function(data){

 if(data[0])
 {

 //get offer and offerer 
 offerer = data[0].offerer;

 pc.odataChannel function(e){

 console.log(e);
 }
 pc.setRemoteDescription(new sessionDescription()data[0].offer));

 pc.createAnswer(function(answerDesc){

 pc.setLocalDescripyion(answerDesc);

    })
   }
 })
}
//when user B send answer 
(onDataChannel event fires on user A object).

function checkAnswers(){

$http.get("/checkAnswers").success(function(data){

if(data.answer){

pc.setRemoteDescription(new sessionDescription(data.answer));
  }

})

1 个答案:

答案 0 :(得分:0)

可能是你错误拼写了回调:

pc.odataChannel function(e){

console.log(e);
}

它是ondatachannel,带有“n”和小写“c”和“=”来定义函数和回调,以便在传递消息时执行某些操作; 类似的东西:

var receiveChannel;
pc.ondatachannel = function (event) {
      console.log('Receive Channel Callback');
      receiveChannel = event.channel;
      receiveChannel.onmessage = gotCMessage;
      receiveChannel.onopen = dcOpen;
      receiveChannel.onclose = dcClose;
       console.log(event);
    }