diff --git a/src/client/debug/index.js b/src/client/debug/index.js new file mode 100644 index 0000000..6e2ed31 --- /dev/null +++ b/src/client/debug/index.js @@ -0,0 +1,37 @@ +const iceServers = require('./iceServers.js'); + +function checkTURNServer(turnConfig, timeout){ + + console.log('checking turn server', turnConfig); + + 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(iceServers[0], 10000) +.then(console.log.bind(console)) +.catch(console.error.bind(console)); diff --git a/src/client/index.js b/src/client/index.js index f1e5f81..8f5b778 100644 --- a/src/client/index.js +++ b/src/client/index.js @@ -1,8 +1,4 @@ 'use strict'; -if (!window.__REACT_DEVTOOLS_GLOBAL_HOOK__) { - window.__REACT_DEVTOOLS_GLOBAL_HOOK__ = {}; -} - const App = require('./components/app.js'); const React = require('react'); const ReactDom = require('react-dom');