我正在尝试使用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));
}
})
答案 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);
}