2017-08-23 22 views
7

Wysyłam żądanie GET typu https do zewnętrznego interfejsu API.Jak utrzymać połączenie za serwerem proxy w węźle js

Najpierw stworzyłem agenta https jak poniżej:

import https from 'https'; 

const KeepAliveAgent = new https.Agent({ 
    keepAlive: true 
}); 

następnie ustawić opcje żądania, jak poniżej:

let options = { 
       url: 'externalapiurl', 
       method: "GET", 
       qs: queryString, 
       agent: KeepAliveAgent 
      }; 

Właśnie wymienione ciągi próbki do adresu URL i QS w pierwotnym wniosku Używam rzeczywistego adresu URL i adresu URL aplikacji API, a następnie wysyłam żądanie w następujący sposób:

  console.time("requestTime"); 
      request(options, (err, response, body) => { 
       if (err) { 
        logger.warn(err.message); 
       } 
       console.timeEnd("requestTime"); 
}); 

Działa to dobrze, ale drukuję czas potrzebny na odpowiedź powyżej, a tym razem jest znacznie więcej, gdy wysyłam żądanie za proxy, gdy nie używam proxy, zajmuje to mniej niż pół sekundy, ale z proxy bierze około 3 sekund, więc wygląda na to, że "utrzymuj przy życiu" nie działa za proxy, jak to działa? Próbowałem tego samego żądania przy użyciu modułu węzła https-proxy-agent, ale mimo to problem nadal występuje, doceniamy każdą pomoc.

+0

Jakiego proxy mówisz? Czy jest na serwerze API, na serwerze klienta, czy na zewnątrz? Czy adres URL interfejsu API jest taki sam w obu przypadkach? –

+0

@vissi, proszę zaktualizować pytanie z większą ilością szczegółów, ponieważ bieżący jest dość niejasny pod względem tego, co to jest konfiguracja –

+0

To nie było moje pytanie, więc nie zaktualizowałem go, ale nadal jestem zainteresowany @Miguel, patrz poniżej – vissi

Odpowiedz