TsgcWSPClient_MQTTMétodos › Subscribe

Subscribe Método

Suscribe al cliente a uno o más filtros de temas en el QoS solicitado.

Sobrecargas

Sobrecarga 1

Sintaxis

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

Parámetros

NombreTipoDescripción
aTopicconst StringFiltro de tema al que suscribirse; se admiten comodines de un solo nivel (+) y de varios niveles (#).
aQoSTmqttQoSQoS máximo que el broker debe entregar para los mensajes coincidentes. El valor predeterminado es mtqsAtMostOnce.
aSubscribePropertiesconst TsgcWSMQTTSubscribe_PropertiesPropiedades opcionales de MQTT 5.0 como el identificador de suscripción, el indicador No Local, Retain As Published o Retain Handling. Pase nil para usar los valores predeterminados.

Valor de Retorno

Identificador de paquete del paquete SUBSCRIBE. Correle con la concesión notificada a través de OnMQTTSubscribe para conocer el QoS que realmente asignó el broker. (Word)

Observaciones

Sobrecarga de topic único, la forma más común. Los mensajes entrantes se exponen a través de OnMQTTPublish (o OnMQTTPublishEx para MQTT 5.0). El broker puede reducir el QoS si no admite el nivel solicitado o si se aplican reglas ACL.

Ejemplo

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

Sobrecarga 2

Sintaxis

function Subscribe(aTopics: TsgcWSTopics): Word;

Parámetros

NombreTipoDescripción
aTopicsTsgcWSTopicsColección de filtros de temas con configuraciones QoS individuales, enviada como un único paquete SUBSCRIBE.

Valor de Retorno

Identificador de paquete del paquete SUBSCRIBE por lotes; se utiliza para correlacionar todas las concesiones recibidas a través de OnMQTTSubscribe. (Word)

Observaciones

Sobrecarga por lotes que suscribe a varios filtros en un solo viaje de ida y vuelta. Prefiera este método a un bucle de llamadas de un solo topic para reducir el tráfico de red y dar al broker la oportunidad de devolver una lista completa de códigos de motivo en un único SUBACK.

Ejemplo

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

Volver a Métodos