MQTT Publish Message e attesa risposta

· Funzionalità

Da sgcWebSockets 4.4.4 il client MQTT ha un nuovo metodo chiamato PublishAndWait. Fino ad ora, quando un client pubblicava un messaggio usando QoS livello 1 o 2, l'unico modo per sapere se il messaggio era stato elaborato dal server era utilizzare gli eventi asincroni OnMQTTAcknowledgment o OnMQTTPubComp: questo significa che il client doveva implementare il proprio metodo di attesa per controllare se il messaggio inviato era stato confermato dal server.

Ora c'è un metodo specifico, PublishAndWait, che fa esattamente questo: pubblica il messaggio e attende finché il server non invia una conferma al client; se il client non riceve la conferma entro un timeout, la funzione restituirà false.

L'uso di PublishAndWait è identico a quello del metodo Publish standard, con un nuovo parametro Timeout: il metodo restituirà false se dopo un certo periodo di tempo non c'è risposta dal server. Il valore predefinito è 10 secondi.

if mqtt.PublishAndWait('topic', 'text') then
  ShowMessage('Message processed')
else
  ShowMessage('Message error');