TsgcWSPClient_MQTT › Metody › Publish
Publikuje wiadomość do tematu z użyciem żądanych flag QoS i retain.
function Publish(const aTopic, aText: String; aQoS: TmqttQoS = mtqsAtMostOnce; aRetain: Boolean = False; const aPublishProperties: TsgcWSMQTTPublish_Properties = nil) : Word;
| Nazwa | Typ | Opis |
|---|---|---|
aTopic | const String | W pełni kwalifikowana nazwa tematu, do którego publikowana jest wiadomość (bez symboli wieloznacznych). |
aText | const String | Ładunek UTF-8 wysyłany jako treść pakietu PUBLISH. |
aQoS | TmqttQoS | Gwarancja dostarczenia: mtqsAtMostOnce (0), mtqsAtLeastOnce (1) lub mtqsExactlyOnce (2). Domyślnie mtqsAtMostOnce. |
aRetain | Boolean | Gdy wartość wynosi True, broker przechowuje wiadomość jako zatrzymaną wartość dla tematu i przekazuje ją nowym subskrybentom. |
aPublishProperties | const TsgcWSMQTTPublish_Properties | Opcjonalne właściwości MQTT 5.0 (typ zawartości, temat odpowiedzi, ważność wiadomości, właściwości użytkownika). Należy przekazać nil, aby je pominąć. |
Identyfikator pakietu przypisany do pakietu PUBLISH; różny od zera dla QoS 1 i 2, zero dla QoS 0. Umożliwia korelację z OnMQTTPubAck, OnMQTTPubRec i OnMQTTPubComp. (Word)
Przeciążenie tekstowe, idealne dla dokumentów JSON i innych treści UTF-8. Wywołanie powraca, gdy tylko pakiet zostanie przekazany do transportu; potwierdzenia QoS 1/2 są dostarczane asynchronicznie. Wymaga aktywnej sesji MQTT nawiązanej za pomocą Connect.
MQTT.Publish('sensors/temp', '{"value":22.5}', mtqsAtLeastOnce, True);
function Publish(const aTopic: String; const aStream: TStream; aQoS: TmqttQoS = mtqsAtMostOnce; aRetain: Boolean = False; const aPublishProperties: TsgcWSMQTTPublish_Properties = nil) : Word;
| Nazwa | Typ | Opis |
|---|---|---|
aTopic | const String | W pełni kwalifikowana nazwa tematu, do którego publikowany jest ładunek binarny. |
aStream | const TStream | Strumień źródłowy, którego pełna zawartość jest wysyłana bez zmian jako ładunek PUBLISH. Pozycja jest zapisywana i przywracana przez komponent. |
aQoS | TmqttQoS | Gwarancja dostarczenia: mtqsAtMostOnce (0), mtqsAtLeastOnce (1) lub mtqsExactlyOnce (2). Domyślnie mtqsAtMostOnce. |
aRetain | Boolean | Gdy True, broker przechowuje ładunek jako wartość zachowaną dla tematu. |
aPublishProperties | const TsgcWSMQTTPublish_Properties | Opcjonalne właściwości MQTT 5.0, zazwyczaj używane do ustawienia Content Type (np. image/png) podczas wysyłania danych binarnych. |
Identyfikator pakietu dla pakietu PUBLISH; zero dla QoS 0. Umożliwia korelację ze zdarzeniami potwierdzenia. (Word)
Przeciążenie binarne dla plików, ramek protobuf, obrazów i innych ładunków niebędących tekstem. Strumień jest odczytywany w całości przed serializacją, dlatego bardzo duże ładunki powinny być dzielone na fragmenty na poziomie aplikacji, aby uniknąć dużych alokacji. Zachowanie w zakresie QoS, Retain i właściwości jest identyczne jak w przeciążeniu tekstowym.
oStream := TFileStream.Create('firmware.bin', fmOpenRead or fmShareDenyWrite);
try
MQTT.Publish('devices/123/firmware', oStream, mtqsExactlyOnce);
finally
oStream.Free;
end;