测试coturn服务器是否可用(Webrtc)

来源:互联网 发布:江歌案始末知乎 编辑:程序博客网 时间:2024/05/22 13:28
  function checkTURNServer(turnConfig, timeout){    return new Promise(function(resolve, reject){      setTimeout(function(){        if(promiseResolved) return;        resolve(false);        promiseResolved = true;      }, timeout || 5000);      var promiseResolved = false        , myPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection   //compatibility for firefox and chrome        , pc = new myPeerConnection({iceServers:[turnConfig]})        , noop = function(){};      pc.createDataChannel("");    //create a bogus data channel      pc.createOffer(function(sdp){        if(sdp.sdp.indexOf('typ relay') > -1){ // sometimes sdp contains the ice candidates...          promiseResolved = true;          resolve(true);        }        pc.setLocalDescription(sdp, noop, noop);      }, noop);    // create offer and set local description      pc.onicecandidate = function(ice){  //listen for candidate events        if(promiseResolved || !ice || !ice.candidate || !ice.candidate.candidate || !(ice.candidate.candidate.indexOf('typ relay')>-1))  return;        promiseResolved = true;        resolve(true);      };    });  }  checkTURNServer({    url: 'turn:*.*.*.*',    username: '×××××××',    credential: '××××××××××',  }).then(function(bool){    console.log('is my TURN server active? ', bool? 'yes':'no');  }).catch(console.error.bind(console));

0 0
原创粉丝点击