handlePublishRelease method
Handles the publish release, for messages that are undergoing Qos ExactlyOnce processing.
Implementation
bool handlePublishRelease(MqttMessage? msg) {
final pubRelMsg = msg as MqttPublishReleaseMessage;
final messageIdentifier = pubRelMsg.variableHeader.messageIdentifier;
MqttLogger.log(
'PublishingManager::handlePublishRelease - for message identifier $messageIdentifier');
var publishSuccess = true;
try {
final pubMsg = receivedMessages.remove(messageIdentifier);
if (pubMsg != null) {
// Send the message for processing to whoever is waiting.
final topic = PublicationTopic(pubMsg.variableHeader!.topicName);
_clientEventBus!.fire(MessageReceived(topic, pubMsg));
final compMsg = MqttPublishCompleteMessage()
.withMessageIdentifier(pubMsg.variableHeader!.messageIdentifier);
connectionHandler!.sendMessage(compMsg);
}
} on Exception {
publishSuccess = false;
}
return publishSuccess;
}