mirror of
				https://github.com/node-red/node-red.git
				synced 2025-03-01 10:36:34 +00:00 
			
		
		
		
	Merge pull request #3552 from Steve-Mcl/fix-mqtt-status
Fix incorrect MQTT status
This commit is contained in:
		| @@ -362,7 +362,7 @@ module.exports = function(RED) { | ||||
|                     node.brokerConn.connect(function () { | ||||
|                         done(); | ||||
|                     }); | ||||
|                 }) | ||||
|                 }, true) | ||||
|             } else { | ||||
|                 // Without force flag, we will refuse to cycle an active connection | ||||
|                 done(new Error(RED._('mqtt.errors.invalid-action-alreadyconnected'))); | ||||
| @@ -750,32 +750,35 @@ module.exports = function(RED) { | ||||
|                 } | ||||
|             } | ||||
|         }; | ||||
|         node.disconnect = function (callback) { | ||||
|             const _callback = function (resetNodeConnectedState) { | ||||
|         node.disconnect = function (callback, force) { | ||||
|             const _callback = function (resetNodeConnectedState, _force) { | ||||
|                 setStatusDisconnected(node, true); | ||||
|                 if(resetNodeConnectedState) { | ||||
|                 if(resetNodeConnectedState || _force) { | ||||
|                     node.client.removeAllListeners(); | ||||
|                     node.closing = true; | ||||
|                     node.connecting = false; | ||||
|                     node.connected = false; | ||||
|                 } | ||||
|                 callback && typeof callback == "function" && callback(); | ||||
|             }; | ||||
|  | ||||
|             if(node.closing) { | ||||
|                 return _callback(false); | ||||
|                 return _callback(false, force); | ||||
|             } | ||||
|             var endCallBack = function endCallBack() { | ||||
|             } | ||||
|             if(node.connected && node.closeMessage) { | ||||
|                 node.publish(node.closeMessage, function (err) { | ||||
|                     node.client.end(endCallBack); | ||||
|                     _callback(true); | ||||
|                     _callback(true, force); | ||||
|                 }); | ||||
|             } else if(node.connected) { | ||||
|                 node.client.end(endCallBack); | ||||
|                 _callback(true); | ||||
|                 _callback(true, force); | ||||
|             } else if(node.connecting) { | ||||
|                 node.client.end(); | ||||
|                 _callback(true, true); | ||||
|             } else { | ||||
|                 _callback(false); | ||||
|                 _callback(false, force); | ||||
|             } | ||||
|         } | ||||
|         node.subscriptionIds = {}; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user