En MQTT, los mensajes con QoS 1 o 2 deben entregarse al menos una vez (los mensajes de QoS 2 deben entregarse exactamente una vez). Si el cliente no está conectado, el intermediario debe almacenar el mensaje hasta que el cliente esté listo para recibirlo.
El blog HiveMQ tiene un punto interesante:
Pero, ¿qué sucede si un cliente no se conecta en línea durante mucho tiempo? La restricción para almacenar mensajes es a menudo el límite de memoria del sistema operativo. No hay una forma estándar de qué hacer en este escenario. Depende totalmente del caso de uso. En HiveMQ proporcionaremos la posibilidad de manipular mensajes en cola y purgarlos.
Dado que esto parece depender del corredor, ¿cómo maneja Mosquitto esta situación? ¿Simplemente se bloquea después de quedarse sin memoria o finalmente se eliminan los mensajes antiguos?