2015-05-16 2 views
2

Я разрабатываю собственное приложение webRTC после учебников Sam Dutton, я использую xirSys для предоставления TURN-сервера для моего однорангового видео. BUT $.ajax() метод не возвращает учетные данные, имя пользователя, URL, как я ожидаю. Я также пытался использовать dataType: JSONP. Ответа, возвращаемой возвращается при отладке из поджигатель является:

{"p":"/getIceServers","s":400,"d":null,"e":"Could not validate application"}

Есть в любом случае, что я мог бы получить мой URL, имени пользователя, верительных в JSON и использовать их непосредственно в моем приложении, не получая любая ошибка, потому что даже если статус URL-адреса достиг 200, по-прежнему существует синтаксическая ошибка, когда вызывается $.ajax()?

$.ajax({ 
     type: "POST", 
     url: "https://api.xirsys.com/getIceServers", 
     data: { 
      ident: "< xyz >", 
      secret: "< something-like-my-token >", 
      domain: "< www.mydomain.com >", 
      application: "default", 
      room: "default", 
      secure: 1 
     }, 
     success: function (data, status) { 
      // data.d is where the iceServers object lives 
      peerConnectionConfig = data.d; 
      console.log(peerConnectionConfig); 
     } 
}); 

ответ

0

После много борьбы, я, наконец, нашел, что использование JQuery в $ .ajax() не работает, как круто, как $ .post(), или просто я не получил его. В любом случае, это моя работа с ним.

function() является успех обратного вызова, в котором STUN и ПОВОРОТ серверы помещены в массив и используется как было желательно методом RTCPeerConnection(server).

$.post("https://api.xirsys.com/getIceServers", { 
      ident: "your_username", 
      secret: "XXX-XXXX-XXXX-XX", 
      domain: "www.mydomainname.com", 
      application: "default", 
      room: "default", 
      secure: 1 
     }, 
     function (data, status) { 
      console.log("Data: " + data + "nnStatus: " + status); //just for checking 
      myResponse = data; 
      turnServer = JSON.parse(myResponse);  //parsing to JSON because RTCPeerConnection() requires an object 
      console.log(turnServer.d); //d is the property that contains our STUN and TURN servers 
      for (var i in turnServer.d.iceServers) { //logic for STUN and TURN 
       if(i == 0) { 
        STUN = turnServer.d.iceServers[i]; 
        pc_config.iceServers.push(STUN); 
       } 
       if(i > 0) { 
        var turnUrl = turnServer.d.iceServers[i].url; 
        var turnSlice = turnUrl.slice(5,25); 
        TURN = {"url": "turn:" + turnServer.d.iceServers[i].username + '@' + turnSlice, 
         "credential" : turnServer.d.iceServers[i].credential } 
        pc_config.iceServers.push(TURN); 

     } 

Вызов RTCPeerConnection (pc_config) для извлечения STUN и TURN серверов, для производств иначе она отлично работает на localhost с параметрами, установленными в null.