Ошибка getaddrinfo ENOTFOUND на героку

Я пытаюсь развернуть сигнальный сервер webRTC на Heroku. Он работает на моей локальной машине, но дал:

Error: getaddrinfo ENOTFOUND global.xirsys.net global.xirsys.net` 

при развертывании на Heroku.

Я использую simpleWebRTC + signalmaster + XirSys

Официальный документ от xirSys показывает:

// Node Get ICE STUN and TURN list
var https = require("https");
var options = {
      host: "global.xirsys.net",
      path: "/_turn/Acumany",
      method: "PUT",
      headers: {
          "Authorization": "Basic " + new Buffer("acumany:4b6aea04-6152-11e7-9d16-3fa9b82ffd4f").toString("base64")
      }
};
var httpreq = https.request(options, function(httpres) {
      var str = "";
      httpres.on("data", function(data){ str += data; });
      httpres.on("error", function(e){ console.log("error: ",e); });
      httpres.on("end", function(){ 
          console.log("ICE List: ", str);
      });
});
httpreq.end();

И я использовал аксиомы:

axios.put("https://acumany:[email protected]/_turn/Acumany")
            .then((res) => {
              var result = res.data;
              var iceServers = result.v.iceServers;
              var turnservers = [],
                  stunservers = [];
              iceServers.forEach(function (server) {
                  if(server.url.indexOf("stun:") != -1){
                      stunservers.push(server);
                  }else{
                      turnservers.push(server);
                  }
              });
              console.log("emitting server info => ", stunservers, turnservers);
              client.emit('stunservers', stunservers || []);
              client.emit('turnservers', turnservers);
            })
            .catch(function (err) {
              console.log("axios error => ", err);
            });

Я предполагаю, что геройку переключает http/https в свой собственный балансировщик нагрузки. Как я могу изменить этот код, чтобы он работал? (либо с https, либо с axios)


person Tianhao Zhou    schedule 06.07.2017    source источник
comment
Удалите свои учетные данные   -  person Mukesh Sharma    schedule 06.07.2017
comment
ах... извините, что вы подразумеваете под учетными данными?   -  person Tianhao Zhou    schedule 06.07.2017
comment
Вы пытались специально поместить учетные данные в заголовок в axios, а не добавлять их в домен?   -  person Lee Sylvester    schedule 06.07.2017
comment
да, я пробовал это с модулем https, но он выдал мне точно такой же код ошибки.   -  person Tianhao Zhou    schedule 07.07.2017


Ответы (1)


global.xirsys.net — это динамический домен, который географически направляет ваш запрос. Возможно, что-то в этом несовместимо с Heroku. Вместо этого попробуйте статическую конечную точку xirsys. Например, ss.xirsys.com для Сингапура или us.xirsys.com для восточного побережья США.

Список конечных точек можно увидеть здесь: https://us.xirsys.com:9000/api-intro

person R.Blakely    schedule 07.07.2017
comment
Да, это сработало. Спасибо. Я развернул статику на сервере Heroku в США, и это сработало. Кроме того, я развернул глобал на европейском сервере Heroku, и это тоже сработало. - person Tianhao Zhou; 09.07.2017