TsgcWSPClient_MQTT › Właściwości › QoS
Domyślny poziom Quality of Service oraz zachowanie dotyczące ponawiania prób i limitów czasu dla wychodzących wiadomości QoS 1 i QoS 2.
property QoS: TsgcWSMQTTQoS_Options read FQoS write SetQoS;
Level=mtqsAtMostOnce, Interval=60, Timeout=300
Level to domyślny poziom QoS stosowany przez metody pomocnicze, gdy nie podano jawnej wartości: mtqsAtMostOnce (QoS 0 — wyślij i zapomnij), mtqsAtLeastOnce (QoS 1 — potwierdzone przez PUBACK, możliwe duplikaty) lub mtqsExactlyOnce (QoS 2 — czterokierunkowe uzgadnianie PUBLISH/PUBREC/PUBREL/PUBCOMP, gwarantowane pojedyncze dostarczenie). Interval (w sekundach) określa, jak często wewnętrzny magazyn QoS ponownie wysyła niepotwierdzonych wiadomości QoS 1 i QoS 2; Timeout (w sekundach) to maksymalny wiek, po którym niepotwierdzana wiadomość jest usuwana z magazynu. Wiadomości QoS 0 całkowicie omijają magazyn ponownych prób. Zwiększenie wartości Timeout jest pomocne w przypadku łączy o dużym opóźnieniu lub niestabilnych; ustawienie obu wartości na 0 wyłącza logikę ponownego wysyłania i pozostawia zarządzanie wyłącznie wygasaniu sesji MQTT 5.0.
MQTT.QoS.Level := mtqsAtLeastOnce;
MQTT.QoS.Interval := 30;
MQTT.QoS.Timeout := 600;
MQTT.Publish('sensors/temp', '21.5');