1
0
mirror of https://github.com/node-red/node-red-nodes.git synced 2023-10-10 13:36:58 +02:00

STOMP bugfix: msg.topic can't be used with STOMP out node and ack node (#1009)

* Bugfix: not responsive to msg.topic on input of STOMP out node

* Bugfix: not responsive to msg.topic on input of STOMP ack and out node

* Bugfix: backward compatible node.topic has prio + Docs: added info about msg.topic in ACK node docs

* Typo fix
This commit is contained in:
Olivier Verhaegen 2023-06-08 22:14:40 +02:00 committed by GitHub
parent 983cab970e
commit 8743c2afa6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 4 deletions

View File

@ -197,6 +197,7 @@
<p> <p>
The node allows for following inputs: The node allows for following inputs:
<ul> <ul>
<li><code>msg.topic</code>The topic for which the message should be acknowledged, if the <b>Destination</b> field is set the msg.topic will be overwritten by this value</li>
<li><code>msg.messageId</code>: The id of the message to acknowledge</li> <li><code>msg.messageId</code>: The id of the message to acknowledge</li>
<li><code>msg.transaction</code>: Optional transaction name</li> <li><code>msg.transaction</code>: Optional transaction name</li>
</ul> </ul>

View File

@ -420,15 +420,21 @@ module.exports = function(RED) {
setStatusDisconnected(node); setStatusDisconnected(node);
node.on("input", function(msg, send, done) { node.on("input", function(msg, send, done) {
if (node.topic && msg.payload) { const topic = node.topic || msg.topic;
if (topic.length > 0 && msg.payload) {
try { try {
msg.payload = JSON.stringify(msg.payload); msg.payload = JSON.stringify(msg.payload);
} catch { } catch {
msg.payload = `${msg.payload}`; msg.payload = `${msg.payload}`;
} }
node.serverConnection.publish(node.topic, msg.payload, msg.headers || {}); node.serverConnection.publish(topic, msg.payload, msg.headers || {});
done(); } else if (!topic.length > 0) {
node.warn('No valid publish topic');
} else {
node.warn('Payload or topic is undefined/null')
} }
done();
}); });
node.serverConnection.register(node); node.serverConnection.register(node);
@ -463,7 +469,15 @@ module.exports = function(RED) {
setStatusDisconnected(node); setStatusDisconnected(node);
node.on("input", function(msg, send, done) { node.on("input", function(msg, send, done) {
node.serverConnection.ack(node.topic, msg.messageId, msg.transaction); const topic = node.topic || msg.topic;
if (topic.length > 0) {
node.serverConnection.ack(topic, msg.messageId, msg.transaction);
} else if (!topic.length > 0) {
node.warn('No valid publish topic');
} else {
node.warn('Payload or topic is undefined/null')
}
done(); done();
}); });