Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Webrtc 媒体和数据是否可以使用相同的RTPeerConnection?_Webrtc - Fatal编程技术网

Webrtc 媒体和数据是否可以使用相同的RTPeerConnection?

Webrtc 媒体和数据是否可以使用相同的RTPeerConnection?,webrtc,Webrtc,我是webrtc新手,我不太清楚是否可以使用RTPeerConnection对象(我使用该对象正确传输媒体)来创建数据通道,或者我必须为数据传输执行单独的信令 谢谢是(在Chrome中使用): var pc1=new RTCPeerConnection(),pc2=new RTCPeerConnection(); var add=(pc,can)=>can&&pc.addIceCandidate(can).catch(log); pc1.onicecandidate=e=>add(pc2,e.

我是webrtc新手,我不太清楚是否可以使用RTPeerConnection对象(我使用该对象正确传输媒体)来创建数据通道,或者我必须为数据传输执行单独的信令

谢谢

是(在Chrome中使用):

var pc1=new RTCPeerConnection(),pc2=new RTCPeerConnection();
var add=(pc,can)=>can&&pc.addIceCandidate(can).catch(log);
pc1.onicecandidate=e=>add(pc2,e.candidate);
pc2.onicecandidate=e=>add(pc1,e.candidate);
pc1.oniceconnectionstatechange=e=>log(pc1.iceConnectionState);
var dc1、dc2;
pc2.ondatachannel=e=>{
dc2=e通道;
dc2.onopen=()=>日志(“聊天!”);
dc2.onmessage=e=>log(“>”+e.data);
};
var start=()=>navigator.mediaDevices.getUserMedia({video:true})
。然后(流=>{
pc1.addStream(video1.srcObject=stream);
dc1=pc1.createDataChannel(“聊天”);
dc1.onopen=()=>(chat.disabled=false,chat.select());
返回pc1.createOffer();
})
.then(offer=>pc1.setLocalDescription(offer))
.then(()=>pc2.setRemoteDescription(pc1.localDescription))
.然后(()=>pc2.createAnswer())
.then(答案=>pc2.setLocalDescription(答案))
.then(()=>pc1.setRemoteDescription(pc2.localDescription))
.渔获物(原木);
chat.onkeypress=e=>{
如果(e.keyCode!=13)返回;
dc1.send(chat.value);
chat.value=“”;
};
var log=msg=>div.innerHTML+=“
”+msg


开始 聊天:
是(在Chrome中使用):

var pc1=new RTCPeerConnection(),pc2=new RTCPeerConnection();
var add=(pc,can)=>can&&pc.addIceCandidate(can).catch(log);
pc1.onicecandidate=e=>add(pc2,e.candidate);
pc2.onicecandidate=e=>add(pc1,e.candidate);
pc1.oniceconnectionstatechange=e=>log(pc1.iceConnectionState);
var dc1、dc2;
pc2.ondatachannel=e=>{
dc2=e通道;
dc2.onopen=()=>日志(“聊天!”);
dc2.onmessage=e=>log(“>”+e.data);
};
var start=()=>navigator.mediaDevices.getUserMedia({video:true})
。然后(流=>{
pc1.addStream(video1.srcObject=stream);
dc1=pc1.createDataChannel(“聊天”);
dc1.onopen=()=>(chat.disabled=false,chat.select());
返回pc1.createOffer();
})
.then(offer=>pc1.setLocalDescription(offer))
.then(()=>pc2.setRemoteDescription(pc1.localDescription))
.然后(()=>pc2.createAnswer())
.then(答案=>pc2.setLocalDescription(答案))
.then(()=>pc1.setRemoteDescription(pc2.localDescription))
.渔获物(原木);
chat.onkeypress=e=>{
如果(e.keyCode!=13)返回;
dc1.send(chat.value);
chat.value=“”;
};
var log=msg=>div.innerHTML+=“
”+msg


开始 聊天:

您可以为两者使用相同的RTCPeerConnection对象,但会出现以下错误:“RTCPeerConnection”:RTCDataChannel不受支持什么浏览器/版本?chromium版本49.0.2623.108 Ubuntu 14.04这有帮助吗?它在Firefox上工作吗?您可以为两者使用相同的RTCPeerConnection对象。出现以下错误:“RTCPeerConnection”:RTCDataChannel不受支持什么浏览器/版本?chromium版本49.0.2623.108 Ubuntu 14.04这有帮助吗?它在Firefox上工作吗?