Merge pull request #4156 from node-red/4133-mqtt-v5-disconnects-when-subscribing-to-aws-core-broker

Dont use `subscriptionIdentifier` if broker doesnt support it
This commit is contained in:
Nick O'Leary 2023-05-22 16:42:25 +01:00 committed by GitHub
commit 5d698d66d0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 7 additions and 1 deletions

View File

@ -697,7 +697,8 @@ module.exports = function(RED) {
node.options.rejectUnauthorized = (node.verifyservercert == "true" || node.verifyservercert === true);
}
}
node.v5 = () => node.options && node.options.protocolVersion == 5
node.subscriptionIdentifiersAvailable = () => node.v5() && node.serverProperties && node.serverProperties.subscriptionIdentifiersAvailable
n.autoConnect = n.autoConnect === "false" || n.autoConnect === false ? false : true;
node.setOptions(n, true);
@ -920,7 +921,12 @@ module.exports = function(RED) {
};
node.subscriptions[topic][ref] = sub;
if (node.connected) {
const subIdsAvailable = node.subscriptionIdentifiersAvailable()
node._clientOn('message',sub.handler);
// if the broker doesn't support subscription identifiers (e.g. AWS core), then don't send them
if (options.properties && options.properties.subscriptionIdentifier && subIdsAvailable !== true) {
delete options.properties.subscriptionIdentifier
}
node.client.subscribe(topic, options);
}
};