handlePublishReceived method
Handles publish received messages during processing of QOS level 2 (Exactly once) messages. Returns true or false, depending on the success of message processing.
Implementation
bool handlePublishReceived(MqttMessage msg) {
MqttLogger.log('MqttPublishingManager::handlePublishReceived - entered');
final recvMsg = msg as MqttPublishReceivedMessage;
// If we've got a matching message, respond with a "ok release it for processing"
dynamic relMsg;
if (publishedMessages
.containsKey(recvMsg.variableHeader.messageIdentifier)) {
relMsg = MqttPublishReleaseMessage()
.withMessageIdentifier(recvMsg.variableHeader.messageIdentifier)
.withReasonCode(MqttPublishReasonCode.success);
} else {
relMsg = MqttPublishReleaseMessage()
.withMessageIdentifier(
messageIdentifierDispenser.nextMessageIdentifier)
.withReasonCode(MqttPublishReasonCode.packetIdentifierNotFound);
}
_connectionHandler.sendMessage(relMsg);
return true;
}