Is MQTT Internet iolibrary complete?


I am working with the iolibrary and I use the MQTT Internet module to develop a MQTT client application on my MCU. By looking at the code that implements the MQTT client in MQTTClient.c, it seems that there are no mechanisms to ensure the reliability of QoS 1 and 2 messages. For example, in a QoS 2 message exchange, I cannot find actual code handling situations where the client needs to re-send its publish message if it does not receive a PUBREC packet after a while ?

Do I worry for nothing or do the library is just a minimal and not complete implementation of the requirements implied with QoS 1 and 2 messages ?

Thanks in advance,



Did you ask about QoS settings?

If you look inside the file MQTTClient.c in the library,

There is a cycle function. You can set QoS in the function as shown in the following figure.

Thank you.

Hi Louis,

Yes, I asked about QoS, but that is not my point.

I saw the cycle function, but it seems like this function does not handle all the potential cases that can happen. For example, for QoS 2 messages, I cannot see code in the cycle function that handles re-transmission of publish message if the client does not receive a PUBREC packet after a certain amount of time (timeout).