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.
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? –
@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 –
To nie było moje pytanie, więc nie zaktualizowałem go, ale nadal jestem zainteresowany @Miguel, patrz poniżej – vissi