我正在尝试使用webrtc数据通道设置文本聊天。我的网络是私有网络,所以我不能使用任何依赖或框架,比如peerjs或类似的。我在java play服务器上发布了我的项目,所以我有一个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));
}
})发布于 2015-07-27 21:24:08
可能是你拼错了回调:
pc.odataChannel function(e){
console.log(e);
}它是带有"n“和小写的"c”和"=“的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);
}https://stackoverflow.com/questions/31648617
复制相似问题