handlePublishReceived method

bool handlePublishReceived(
  1. MqttMessage msg
)

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;
}