diff --git a/packages/node_modules/@node-red/nodes/core/network/10-mqtt.js b/packages/node_modules/@node-red/nodes/core/network/10-mqtt.js index 5d4efaf93..5546dc868 100644 --- a/packages/node_modules/@node-red/nodes/core/network/10-mqtt.js +++ b/packages/node_modules/@node-red/nodes/core/network/10-mqtt.js @@ -288,7 +288,7 @@ module.exports = function(RED) { //TODO: delete msg.responseTopic - to prevent it being resent? } } - topicOK = topicOK && !/[\+#]/.test(msg.topic); + topicOK = topicOK && !/[\+#\b\f\n\r\t\v\0]/.test(msg.topic); if (topicOK) { node.brokerConn.publish(msg, done); // send the message @@ -730,12 +730,18 @@ module.exports = function(RED) { node.client.on("reconnect", function() { setStatusConnecting(node, true); }); - //TODO: what to do with this event? Anything? Necessary? + //Broker Disconnect - V5 event node.client.on("disconnect", function(packet) { //Emitted after receiving disconnect packet from broker. MQTT 5.0 feature. - var rc = packet && packet.properties && packet.properties.reasonString; - var rc = packet && packet.properties && packet.reasonCode; - //TODO: If keeping this event, do we use these? log these? + const rc = (packet && packet.properties && packet.reasonCode) || packet.reasonCode; + const rs = packet && packet.properties && packet.properties.reasonString || ""; + const details = { + broker: (node.clientid?node.clientid+"@":"")+node.brokerurl, + reasonCode: rc, + reasonString: rs + } + node.log(RED._("mqtt.state.broker-disconnected", details)); + setStatusDisconnected(node, true); }); // Register disconnect handlers node.client.on('close', function () { diff --git a/packages/node_modules/@node-red/nodes/locales/en-US/messages.json b/packages/node_modules/@node-red/nodes/locales/en-US/messages.json index f66305abc..ecc5d905c 100755 --- a/packages/node_modules/@node-red/nodes/locales/en-US/messages.json +++ b/packages/node_modules/@node-red/nodes/locales/en-US/messages.json @@ -442,7 +442,8 @@ "state": { "connected": "Connected to broker: __broker__", "disconnected": "Disconnected from broker: __broker__", - "connect-failed": "Connection failed to broker: __broker__" + "connect-failed": "Connection failed to broker: __broker__", + "broker-disconnected": "Broker __broker__ disconnected client: __reasonCode__ __reasonString__" }, "retain": "Retain", "output": {