TsgcWSPClient_MQTTProprietà › QoS

QoS Proprietà

Livello predefinito di Quality of Service e comportamento di retry/timeout per i messaggi QoS 1 e QoS 2 in uscita.

Sintassi

property QoS: TsgcWSMQTTQoS_Options read FQoS write SetQoS;

Valore predefinito

Level=mtqsAtMostOnce, Interval=60, Timeout=300

Note

Level è il QoS predefinito applicato dai metodi di convenienza quando non viene fornito un valore esplicito: mtqsAtMostOnce (QoS 0 — fire-and-forget), mtqsAtLeastOnce (QoS 1 — confermato con PUBACK, possibili duplicati) o mtqsExactlyOnce (QoS 2 — handshake a quattro fasi PUBLISH/PUBREC/PUBREL/PUBCOMP, consegna singola garantita). Interval (secondi) è la frequenza con cui l'archivio QoS interno reinvia i messaggi QoS 1 e QoS 2 non confermati; Timeout (secondi) è l'età massima dopo la quale un messaggio non confermato viene eliminato dall'archivio. I messaggi QoS 0 bypassano completamente l'archivio di retry. Aumentare Timeout aiuta su collegamenti ad alta latenza o intermittenti; impostare entrambi su 0 per disabilitare la logica di reinvio e affidarsi esclusivamente alla scadenza della sessione MQTT 5.0.

Esempio


MQTT.QoS.Level := mtqsAtLeastOnce;
MQTT.QoS.Interval := 30;
MQTT.QoS.Timeout := 600;
MQTT.Publish('sensors/temp', '21.5');

Torna alle Proprietà