Sto cercando di capire meglio come funziona il RTCPeerConnection, ma non riesco a farlo funzionare!!!
Spero che il codice risulti leggibbile!!!!
Codice: Seleziona tutto
// settaggi
var signalingChannel;
var myCandidate;
var servers = {
iceServers: [
{url: "stun:stun.l.google.com:19302"}
]};
var option = {
optional: [{
RtpDataChannels: true
}]
};
var RTCPeerConnection = window.mozRTCPeerConnection || window.webkitRTCPeerConnection;
var IceCandidate = window.mozRTCIceCandidate || window.RTCIceCandidate;
var SessionDescription = window.mozRTCSessionDescription || window.RTCSessionDescription;
var peer;
var myCandidate;
function init(){
signalingChannel = new SignalingChannel();
peer = new RTCPeerConnection(servers, option);
peer.onicecandidate = function( evt ){
if( evt.candidate ){
console.log(evt.candidate);
signalingChannel.send({
candidate : JSON.stringify(evt.candidate)
});
}
}
peer.createOffer(function(offer) {
peer.setLocalDescription(offer, function(evt){
console.log(evt);
},
function(err){
console.log('err');
console.log(err);
});
},
function(err) {
console.log('errore');
console.log(err);
}
);
signalingChannel.onmessage = function( evt ){
var message = evt.data;
if( message.sdp ){
peer.setRemoteDescription( new SessionDescription( message.sdp ), function(){
if( peer.remoteDescription.type == 'offer' ) peer.createAnswer( localDescrCreated, logError );
}, logError);
}
else peer.addIceCandidate(new IceCandidate( message.candidate ));
}
peer.oniceconnectionstatechange = function() {
console.log(peer.iceConnectionState);
};
peer.onopen = function(evt){
console.log(evt);
}
};
function localDescrCreated( desc ){
peer.setLocalDescription( desc, function(){
// risposta
signalingChannel.send({
sdp : JSON.stringify(peer.localDescription)
});
}, logError)
}
function logError( err ){
console.log( err );
}