TsgcWSPClient_MQTT › Métodos › Subscribe
Suscribe al cliente a uno o más filtros de temas en el QoS solicitado.
function Subscribe(const aTopic: String; aQoS: TmqttQoS = mtqsAtMostOnce; const aSubscribeProperties: TsgcWSMQTTSubscribe_Properties = nil) : Word;
| Nombre | Tipo | Descripción |
|---|---|---|
aTopic | const String | Filtro de tema al que suscribirse; se admiten comodines de un solo nivel (+) y de varios niveles (#). |
aQoS | TmqttQoS | QoS máximo que el broker debe entregar para los mensajes coincidentes. El valor predeterminado es mtqsAtMostOnce. |
aSubscribeProperties | const TsgcWSMQTTSubscribe_Properties | Propiedades 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. |
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)
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.
MQTT.Subscribe('sensors/+/temperature', mtqsAtLeastOnce);
function Subscribe(aTopics: TsgcWSTopics): Word;
| Nombre | Tipo | Descripción |
|---|---|---|
aTopics | TsgcWSTopics | Colección de filtros de temas con configuraciones QoS individuales, enviada como un único paquete SUBSCRIBE. |
Identificador de paquete del paquete SUBSCRIBE por lotes; se utiliza para correlacionar todas las concesiones recibidas a través de OnMQTTSubscribe. (Word)
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.
oTopics := TsgcWSTopics.Create;
try
oTopics.Add('sensors/#', mtqsAtLeastOnce);
oTopics.Add('alerts/#', mtqsExactlyOnce);
MQTT.Subscribe(oTopics);
finally
oTopics.Free;
end;