2015-07-27 4 views
0

Я пытаюсь настроить текстовый чат с использованием канала данных webrtc. моя сеть его частной сети, поэтому я не могу использовать какие-либо зависимости или фреймворки, такие как peerjs или подобные. Я опубликовал свой проект на сервере java play, так что У меня есть один объект webrtsPeerConnection, который пользователь может выбрать, чтобы инициировать соединение или принимать соединение от кого-то другого. проблема: канал данных настроен и активен для пользователя, инициирующего вызов. , но для пользователя, который присоединился к каналу данных вызова, не активируется, и событие onDataChannel никогда не срабатывает. любые предложения?webrtc data channel not workinig

Заранее благодарен!

мой код Java Script:

// 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)); 
    } 

}) 
+0

код немного запутанный, также я не вижу обмена льда. – mido

ответ

0

Это может быть, что вы неправильно обратного вызова:

pc.odataChannel function(e){ 

console.log(e); 
} 

это ondatachannel с "п" и строчной "с" и «= «определить функцию и обратные вызовы, чтобы что-то делать, когда сообщения доставляются; что-то вроде:

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); 
    }