建立对等连接后创建WebRTC数据通道
当对等连接已经建立时,有没有办法创建数据通道 以下是我正在做的:建立对等连接后创建WebRTC数据通道,webrtc,Webrtc,当对等连接已经建立时,有没有办法创建数据通道 以下是我正在做的: peerConnection.onstatechange = function(event){ var state = peerConnection.readyState; console.log('state changed to : '+state); if(state==='stable'){ console.log('connection is sta
peerConnection.onstatechange = function(event){
var state = peerConnection.readyState;
console.log('state changed to : '+state);
if(state==='stable'){
console.log('connection is stable');
var dataChannel = peerConnection.createDataChannel('test',{reliable: false});
dataChannel.onopen = function(){
console.log('data channel opened');
dataChannel.send('hello data channel');
};
peerConnection.ondatachannel = function(event){
console.log('ondatachannel event fire ',event);
};
}
};
它给了我以下输出:
state changed to : have-local-offer
state changed to : stable
connection is stable
stable
状态等于active
sateonopen
事件由于某种原因不会触发,所以我仍然不确定是否建立了连接我添加了
onnegotiationneeded
事件处理程序,现在peerConnection.ondatachannel
正在启动,但通道处于连接状态您可能遇到了与我相同的问题。显然,在创建报价之前必须添加数据通道,如果要添加流,则需要创建新的报价/应答并重新协商。根据W3C规范:
特别是,如果RTPeerConnection对象正在使用MediaStream,并且通过(例如)调用的add()方法将轨迹添加到流的MediaStreamTrackList对象之一,则RTPeerConnection对象必须触发“NegotiationRequired”事件。移除介质组件还必须触发“需要协商”
然而,NegotiationRequired事件还没有内置在FF中(我认为是在ChromeTo中),所以这就是为什么事情可能会表现得有点不稳定 你找到解决办法了吗?有点,但还是很不稳定