From 3a8820397bf4154fec95a95cd13e41b7be44c7a9 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Mon, 10 Oct 2016 11:08:06 +0100 Subject: [PATCH] clean up status on close for several core nodes. --- nodes/core/core/80-function.js | 1 + nodes/core/io/21-httprequest.js | 4 ++++ nodes/core/io/22-websocket.js | 20 +++++++++++--------- nodes/core/storage/50-file.js | 6 ++++++ 4 files changed, 22 insertions(+), 9 deletions(-) diff --git a/nodes/core/core/80-function.js b/nodes/core/core/80-function.js index d79163196..74320f603 100644 --- a/nodes/core/core/80-function.js +++ b/nodes/core/core/80-function.js @@ -222,6 +222,7 @@ module.exports = function(RED) { while (node.outstandingIntervals.length > 0) { clearInterval(node.outstandingIntervals.pop()) } + this.status({}); }) } catch(err) { // eg SyntaxError - which v8 doesn't include line number information diff --git a/nodes/core/io/21-httprequest.js b/nodes/core/io/21-httprequest.js index 4cb5093af..3fa8097d0 100644 --- a/nodes/core/io/21-httprequest.js +++ b/nodes/core/io/21-httprequest.js @@ -205,6 +205,10 @@ module.exports = function(RED) { } req.end(); }); + + this.on("close",function() { + node.status({}); + }); } RED.nodes.registerType("http request",HTTPRequest,{ diff --git a/nodes/core/io/22-websocket.js b/nodes/core/io/22-websocket.js index fbd450e89..cf4beea6d 100644 --- a/nodes/core/io/22-websocket.js +++ b/nodes/core/io/22-websocket.js @@ -52,16 +52,16 @@ module.exports = function(RED) { if (node.isServer) { delete node._clients[id]; node.emit('closed',Object.keys(node._clients).length); } else { node.emit('closed'); } if (!node.closing && !node.isServer) { - node.tout = setTimeout(function(){ startconn(); }, 3000); // try to reconnect every 3 secs... bit fast ? + node.tout = setTimeout(function() { startconn(); }, 3000); // try to reconnect every 3 secs... bit fast ? } }); - socket.on('message',function(data,flags){ + socket.on('message',function(data,flags) { node.handleEvent(id,socket,'message',data,flags); }); socket.on('error', function(err) { node.emit('erro'); if (!node.closing && !node.isServer) { - node.tout = setTimeout(function(){ startconn(); }, 3000); // try to reconnect every 3 secs... bit fast ? + node.tout = setTimeout(function() { startconn(); }, 3000); // try to reconnect every 3 secs... bit fast ? } }); } @@ -74,8 +74,8 @@ module.exports = function(RED) { // Listen for 'newListener' events from RED.server node._serverListeners = {}; - var storeListener = function(/*String*/event,/*function*/listener){ - if(event == "error" || event == "upgrade" || event == "listening"){ + var storeListener = function(/*String*/event,/*function*/listener) { + if (event == "error" || event == "upgrade" || event == "listening") { node._serverListeners[event] = listener; } } @@ -143,7 +143,7 @@ module.exports = function(RED) { }); } - WebSocketListenerNode.prototype.handleEvent = function(id,/*socket*/socket,/*String*/event,/*Object*/data,/*Object*/flags){ + WebSocketListenerNode.prototype.handleEvent = function(id,/*socket*/socket,/*String*/event,/*Object*/data,/*Object*/flags) { var msg; if (this.wholemsg) { try { @@ -205,11 +205,10 @@ module.exports = function(RED) { } else { this.error(RED._("websocket.errors.missing-conf")); } - this.on('close', function() { node.serverConfig.removeInputNode(node); + node.status({}); }); - } RED.nodes.registerType("websocket in",WebSocketInNode); @@ -244,7 +243,7 @@ module.exports = function(RED) { if (msg._session && msg._session.type == "websocket") { node.serverConfig.reply(msg._session.id,payload); } else { - node.serverConfig.broadcast(payload,function(error){ + node.serverConfig.broadcast(payload,function(error) { if (!!error) { node.warn(RED._("websocket.errors.send-error")+inspect(error)); } @@ -252,6 +251,9 @@ module.exports = function(RED) { } } }); + this.on('close', function() { + node.status({}); + }); } RED.nodes.registerType("websocket out",WebSocketOutNode); } diff --git a/nodes/core/storage/50-file.js b/nodes/core/storage/50-file.js index bb90927e7..3eed20736 100644 --- a/nodes/core/storage/50-file.js +++ b/nodes/core/storage/50-file.js @@ -91,6 +91,9 @@ module.exports = function(RED) { } } }); + this.on('close', function() { + node.status({}); + }); } RED.nodes.registerType("file",FileNode); @@ -127,6 +130,9 @@ module.exports = function(RED) { }); } }); + this.on('close', function() { + node.status({}); + }); } RED.nodes.registerType("file in",FileInNode); }