如何在节点js中保持代理后面的连接

时间:2017-08-23 09:51:37

标签: node.js

我正在向外部API发送https GET类型请求。

首先,我创建了https代理,如下所示:

import https from 'https';

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

然后设置请求选项如下:

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

我刚刚提到了url和qs的示例字符串,在原始请求中我使用的是实际的api url和querystring,然后我发送请求如下:

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

这工作正常,但是我正在打印上面的响应所花费的时间,当我在代理服务器后面发送请求时,这个时间要多得多,当我没有使用代理服务器时,它会花费少于半秒,但代理它需要大约3秒,所以它似乎是#34;保持活力"是不是在代理背后工作,如何使这项工作? 我使用https-proxy-agent节点模块尝试了相同的请求,但问题仍然存在,感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

所有关于测量HTTP / HTTPS代理的性能。 https://blog.thousandeyes.com/measuring-performance-with-http-proxies/][1]

你给出的代码似乎是正确的。 我建议在nodejs中使用socketio进行这样的实现。