The MQTT clients will queue up a limited number of QoS 1 or QoS 2 messages and if there's a network connection failure they will (re)transmit them when the connection is reestablished. They won't accept messages if they know that they don't have a connection at the time when the application tries to send them. So if an application wishes to operate in disconnected mode, then it has to queue messages up itself.