TsgcWSPClient_MQTTMétodos › Subscribe

Subscribe Método

Assina o cliente a um ou mais filtros de tópico no QoS solicitado.

Overloads

Overload 1

Sintaxe

function Subscribe(const aTopic: String; aQoS: TmqttQoS = mtqsAtMostOnce; const aSubscribeProperties: TsgcWSMQTTSubscribe_Properties = nil) : Word;

Parâmetros

NameTypeDescrição
aTopicconst StringFiltro de tópico a ser assinado; wildcards de nível único (+) e de múltiplos níveis (#) são suportados.
aQoSTmqttQoSQoS máximo que o broker deve entregar para mensagens correspondentes. Padrão mtqsAtMostOnce.
aSubscribePropertiesconst TsgcWSMQTTSubscribe_PropertiesPropriedades MQTT 5.0 opcionais, como Subscription Identifier, flag No Local, Retain As Published ou Retain Handling. Passe nil para usar os padrões.

Valor de retorno

Identificador de pacote do pacote SUBSCRIBE. Correlacione-o com a concessão reportada através de OnMQTTSubscribe para conhecer o QoS que o broker efetivamente atribuiu. (Word)

Observações

Sobrecarga de tópico único, a forma mais comum. As mensagens de entrada são expostas por meio de OnMQTTPublish (ou OnMQTTPublishEx para MQTT 5.0). O broker pode reduzir o QoS se não suportar o nível solicitado ou se regras de ACL se aplicarem.

Exemplo

MQTT.Subscribe('sensors/+/temperature', mtqsAtLeastOnce);

Sobrecarga 2

Sintaxe

function Subscribe(aTopics: TsgcWSTopics): Word;

Parâmetros

NameTypeDescrição
aTopicsTsgcWSTopicsColeção de filtros de tópico com configurações individuais de QoS, enviada como um único pacote SUBSCRIBE.

Valor de retorno

Identificador de pacote do pacote SUBSCRIBE em batch; utilizado para correlacionar todas as concessões recebidas através de OnMQTTSubscribe. (Word)

Observações

Sobrecarga em lote que assina vários filtros em uma única ida e volta. Prefira-a a um laço de chamadas de tópico único para reduzir a comunicação de rede e dar ao broker a chance de retornar uma lista completa de códigos de motivo em um único SUBACK.

Exemplo

oTopics := TsgcWSTopics.Create;
try
  oTopics.Add('sensors/#', mtqsAtLeastOnce);
  oTopics.Add('alerts/#', mtqsExactlyOnce);
  MQTT.Subscribe(oTopics);
finally
  oTopics.Free;
end;

Voltar para Métodos