Vanaf sgcWebSockets 4.4.4 heeft de MQTT-client een nieuwe methode PublishAndWait. Tot nu toe was de enige manier om te weten of een bericht door de server was verwerkt bij gebruik van QoS-levels 1 of 2 het gebruik van de asynchrone events OnMQTTAcknowledgment of OnMQTTPubComp; de client moest dus zelf een wachtmethode implementeren om te controleren of het verstuurde bericht door de server was bevestigd.
Nu is er een specifieke methode, PublishAndWait, die precies dat doet: hij publiceert het bericht en wacht totdat de server een bevestiging naar de client stuurt; ontvangt de client geen bevestiging binnen de time-out, dan geeft de functie false terug.
Het gebruik van PublishAndWait is hetzelfde als bij de gewone Publish-methode; je hebt nu een nieuwe parameter Timeout, waarbij de methode false teruggeeft als er na een bepaalde periode geen antwoord van de server komt. Standaard is deze waarde 10 seconden.
if mqtt.PublishAndWait('topic', 'text') then
ShowMessage('Message processed')
else
ShowMessage('Message error');
