Add timeout to httprequest node

and override 2 min default in settings.js.
to Close #801
This commit is contained in:
Dave Conway-Jones
2016-02-15 09:45:58 +00:00
parent 2361607aa3
commit 2ba146b9ff
2 changed files with 13 additions and 0 deletions

View File

@@ -28,6 +28,8 @@ module.exports = function(RED) {
var isTemplatedUrl = (nodeUrl||"").indexOf("{{") != -1;
var nodeMethod = n.method || "GET";
this.ret = n.ret || "txt";
if (RED.settings.httpRequestTimeout) { this.reqTimeout = parseInt(RED.settings.httpRequestTimeout) || 120000; }
else { this.reqTimeout = 120000; }
var node = this;
var prox, noprox;
@@ -162,6 +164,13 @@ module.exports = function(RED) {
node.status({});
});
});
req.setTimeout(node.reqTimeout, function() {
node.error(RED._("common.notification.errors.no-response"),msg);
setTimeout(function() {
node.status({fill:"red",shape:"ring",text:"common.notification.errors.no-response"});
},10);
req.abort();
});
req.on('error',function(err) {
msg.payload = err.toString() + " : " + url;
msg.statusCode = err.code;