Skip to content

Commit

Permalink
Merge pull request #4228 from node-red/4223-fix-http-request-keep-alive
Browse files Browse the repository at this point in the history
Fix connection keep-alive in http request node
  • Loading branch information
knolleary committed Jul 10, 2023
2 parents 0743ff3 + 610cb17 commit 69aacc6
Showing 1 changed file with 26 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ module.exports = async function(RED) {
const { v4: uuid } = require('uuid');
const crypto = require('crypto');
const URL = require("url").URL
const http = require("http")
const https = require("https")
var mustache = require("mustache");
var querystring = require("querystring");
var cookie = require("cookie");
Expand Down Expand Up @@ -65,16 +67,27 @@ in your Node-RED user directory (${RED.settings.userDir}).
function HTTPRequest(n) {
RED.nodes.createNode(this,n);
checkNodeAgentPatch();
var node = this;
var nodeUrl = n.url;
var isTemplatedUrl = (nodeUrl||"").indexOf("{{") != -1;
var nodeMethod = n.method || "GET";
var paytoqs = false;
var paytobody = false;
var redirectList = [];
var sendErrorsToCatch = n.senderr;
const node = this;
const nodeUrl = n.url;
const isTemplatedUrl = (nodeUrl||"").indexOf("{{") != -1;
const nodeMethod = n.method || "GET";
let paytoqs = false;
let paytobody = false;
let redirectList = [];
const sendErrorsToCatch = n.senderr;
node.headers = n.headers || [];
var nodeHTTPPersistent = n["persist"];
const useKeepAlive = n["persist"];
let agents = null
if (useKeepAlive) {
agents = {
http: new http.Agent({ keepAlive: true }),
https: new https.Agent({ keepAlive: true })
}
node.on('close', function () {
agents.http.destroy()
agents.https.destroy()
})
}
if (n.tls) {
var tlsNode = RED.nodes.getNode(n.tls);
}
Expand Down Expand Up @@ -560,12 +573,14 @@ in your Node-RED user directory (${RED.settings.userDir}).
opts.agent = {
http: new HttpProxyAgent(proxyOptions),
https: new HttpsProxyAgent(proxyOptions)
};

}
} else {
node.warn("Bad proxy url: "+ prox);
}
}
if (useKeepAlive && !opts.agent) {
opts.agent = agents
}
if (tlsNode) {
opts.https = {};
tlsNode.addTLSOptions(opts.https);
Expand Down

0 comments on commit 69aacc6

Please sign in to comment.