QMqttClient Class
La clase QMqttClient representa el acceso central que se comunica con un broker MQTT. Más...
| Cabecera: | #include <QMqttClient> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Mqtt)target_link_libraries(mytarget PRIVATE Qt6::Mqtt) |
| qmake: | QT += mqtt |
| Hereda: | QObject |
Tipos públicos
| enum | ClientError { NoError, InvalidProtocolVersion, IdRejected, ServerUnavailable, BadUsernameOrPassword, …, Mqtt5SpecificError } |
| enum | ClientState { Disconnected, Connecting, Connected } |
| enum | ProtocolVersion { MQTT_3_1, MQTT_3_1_1, MQTT_5_0 } |
| enum | TransportType { IODevice, AbstractSocket, SecureSocket, WebSocket, SecureWebSocket } |
Propiedades
|
|
Funciones públicas
| QMqttClient(QObject *parent = nullptr) | |
| virtual | ~QMqttClient() override |
| void | authenticate(const QMqttAuthenticationProperties &prop) |
| bool | autoKeepAlive() const |
| bool | cleanSession() const |
| QString | clientId() const |
| void | connectToHost() |
| void | connectToHostEncrypted(const QSslConfiguration &conf) |
(since 6.10) void | connectToHostWebSocket(QWebSocket *webSocket = nullptr) |
(since 6.10) void | connectToHostWebSocketEncrypted(QWebSocket *webSocket = nullptr) |
| QMqttConnectionProperties | connectionProperties() const |
| void | disconnectFromHost() |
| QMqttClient::ClientError | error() const |
| QString | hostname() const |
| quint16 | keepAlive() const |
| QMqttLastWillProperties | lastWillProperties() const |
| QString | password() const |
| quint16 | port() const |
| QMqttClient::ProtocolVersion | protocolVersion() const |
| qint32 | publish(const QMqttTopicName &topic, const QByteArray &message = QByteArray(), quint8 qos = 0, bool retain = false) |
| qint32 | publish(const QMqttTopicName &topic, const QMqttPublishProperties &properties, const QByteArray &message = QByteArray(), quint8 qos = 0, bool retain = false) |
| bool | requestPing() |
| QMqttServerConnectionProperties | serverConnectionProperties() const |
| void | setConnectionProperties(const QMqttConnectionProperties &prop) |
| void | setLastWillProperties(const QMqttLastWillProperties &prop) |
| void | setTransport(QIODevice *device, QMqttClient::TransportType transport) |
| QMqttClient::ClientState | state() const |
| QMqttSubscription * | subscribe(const QMqttTopicFilter &topic, quint8 qos = 0) |
| QMqttSubscription * | subscribe(const QMqttTopicFilter &topic, const QMqttSubscriptionProperties &properties, quint8 qos = 0) |
| QIODevice * | transport() const |
| void | unsubscribe(const QMqttTopicFilter &topic) |
| void | unsubscribe(const QMqttTopicFilter &topic, const QMqttUnsubscriptionProperties &properties) |
| QString | username() const |
| QByteArray | willMessage() const |
| quint8 | willQoS() const |
| bool | willRetain() const |
| QString | willTopic() const |
Ranuras públicas
| void | setAutoKeepAlive(bool autoKeepAlive) |
| void | setCleanSession(bool cleanSession) |
| void | setClientId(const QString &clientId) |
| void | setError(QMqttClient::ClientError error) |
| void | setHostname(const QString &hostname) |
| void | setKeepAlive(quint16 keepAlive) |
| void | setPassword(const QString &password) |
| void | setPort(quint16 port) |
| void | setProtocolVersion(QMqttClient::ProtocolVersion protocolVersion) |
| void | setState(QMqttClient::ClientState state) |
| void | setUsername(const QString &username) |
| void | setWillMessage(const QByteArray &willMessage) |
| void | setWillQoS(quint8 willQoS) |
| void | setWillRetain(bool willRetain) |
| void | setWillTopic(const QString &willTopic) |
Señales
| void | authenticationFinished(const QMqttAuthenticationProperties &p) |
| void | authenticationRequested(const QMqttAuthenticationProperties &p) |
| void | autoKeepAliveChanged(bool autoKeepAlive) |
| void | brokerSessionRestored() |
| void | cleanSessionChanged(bool cleanSession) |
| void | clientIdChanged(QString clientId) |
| void | connected() |
| void | disconnected() |
| void | errorChanged(QMqttClient::ClientError error) |
| void | hostnameChanged(QString hostname) |
| void | keepAliveChanged(quint16 keepAlive) |
| void | messageReceived(const QByteArray &message, const QMqttTopicName &topic = QMqttTopicName()) |
| void | messageSent(qint32 id) |
| void | messageStatusChanged(qint32 id, QMqtt::MessageStatus s, const QMqttMessageStatusProperties &properties) |
| void | passwordChanged(QString password) |
| void | pingResponseReceived() |
| void | portChanged(quint16 port) |
| void | protocolVersionChanged(QMqttClient::ProtocolVersion protocolVersion) |
| void | stateChanged(QMqttClient::ClientState state) |
| void | usernameChanged(QString username) |
| void | willMessageChanged(QByteArray willMessage) |
| void | willQoSChanged(quint8 willQoS) |
| void | willRetainChanged(bool willRetain) |
| void | willTopicChanged(QString willTopic) |
Descripción detallada
Un cliente MQTT es un programa o dispositivo que utiliza MQTT para crear una conexión de red a un servidor MQTT, también llamado broker. La solicitud de conexión debe contener un identificador de cliente único. Opcionalmente, puede contener un Will Topic, Will Message, nombre de usuario y contraseña.
Una vez creada una conexión, un cliente puede enviar mensajes que otros clientes podrían estar interesados en recibir, suscribirse para solicitar notificaciones sobre temas, darse de baja para eliminar una solicitud de notificaciones y desconectarse del broker.
Documentación sobre tipos de miembros
enum QMqttClient::ClientError
Este tipo enum especifica el estado de error de un cliente.
| Constante | Valor | Descripción |
|---|---|---|
QMqttClient::NoError | 0 | No se ha producido ningún error. |
QMqttClient::InvalidProtocolVersion | 1 | El agente no acepta una conexión utilizando la versión de protocolo especificada. |
QMqttClient::IdRejected | 2 | El ID de cliente está malformado. Esto puede estar relacionado con su longitud. |
QMqttClient::ServerUnavailable | 3 | Se ha establecido la conexión de red, pero el servicio no está disponible en el lado del agente. |
QMqttClient::BadUsernameOrPassword | 4 | Los datos del nombre de usuario o de la contraseña están malformados. |
QMqttClient::NotAuthorized | 5 | El cliente no está autorizado a conectarse. |
QMqttClient::TransportInvalid | 256 | El transporte subyacente ha provocado un error. Por ejemplo, la conexión podría haberse interrumpido inesperadamente. |
QMqttClient::ProtocolViolation | 257 | El cliente ha encontrado una violación del protocolo, por lo que ha cerrado la conexión. |
QMqttClient::UnknownError | 258 | Se ha producido un error desconocido. |
QMqttClient::Mqtt5SpecificError | 259 | El error está relacionado con el nivel 5 del protocolo MQTT. Un código de motivo puede proporcionar más detalles. |
enum QMqttClient::ClientState
Este tipo enum especifica los estados en los que puede entrar un cliente.
| Constante | Valor | Descripción |
|---|---|---|
QMqttClient::Disconnected | 0 | El cliente está desconectado del broker. |
QMqttClient::Connecting | 1 | Se ha realizado una solicitud de conexión, pero el broker aún no ha aprobado la conexión. |
QMqttClient::Connected | 2 | El cliente está conectado al broker. |
enum QMqttClient::ProtocolVersion
Este enum especifica la versión de protocolo del estándar MQTT a utilizar durante la comunicación con un broker.
| Constante | Valor | Descripción |
|---|---|---|
QMqttClient::MQTT_3_1 | 3 | Estándar MQTT 3.1 |
QMqttClient::MQTT_3_1_1 | 4 | Estándar MQTT 3.1.1, conocido públicamente como versión 4 |
QMqttClient::MQTT_5_0 | 5 | Estándar MQTT 5.0 |
enum QMqttClient::TransportType
Este tipo enum especifica el método de conexión que se utilizará para instanciar una conexión a un broker.
| Constante | Valor | Descripción |
|---|---|---|
QMqttClient::IODevice | 0 | El transporte utiliza una clase basada en QIODevice. |
QMqttClient::AbstractSocket | 1 | El transporte utiliza una clase basada en QAbstractSocket. |
QMqttClient::SecureSocket | 2 | El transporte utiliza una clase basada en QSslSocket. |
QMqttClient::WebSocket (since Qt 6.10) | 3 | El transporte utiliza una clase basada en QIODevice, que utiliza internamente QWebSocket. |
QMqttClient::SecureWebSocket (since Qt 6.10) | 4 | El transporte utiliza una clase basada en un QIODevice, que utiliza internamente un QWebSocket seguro. |
Documentación de propiedades
autoKeepAlive : bool
Esta propiedad mantiene si el cliente gestionará automáticamente mensajes keep alive al servidor.
Si esta propiedad es true, entonces el cliente enviará automáticamente un mensaje ping al servidor en el intervalo keepAlive.
En caso contrario, el usuario tendrá que invocar manualmente requestPing en el intervalo especificado de la conexión. Si no se ha enviado ningún ping en el intervalo, el servidor se desconectará.
El valor por defecto de esta propiedad es true.
Funciones de acceso:
| bool | autoKeepAlive() const |
| void | setAutoKeepAlive(bool autoKeepAlive) |
Señal de notificador:
| void | autoKeepAliveChanged(bool autoKeepAlive) |
Véase también keepAlive(), requestPing(), serverConnectionProperties(), y pingResponseReceived().
cleanSession : bool
Esta propiedad mantiene el estado después de conectarse a un broker.
Funciones de acceso:
| bool | cleanSession() const |
| void | setCleanSession(bool cleanSession) |
Señal del notificador:
| void | cleanSessionChanged(bool cleanSession) |
clientId : QString
Esta propiedad contiene el valor del identificador del cliente.
Cada cliente necesita tener un identificador único para poder conectarse a un broker MQTT. Si el usuario no especifica ningún identificador de cliente, se generará uno automáticamente cuando se establezca una conexión.
Funciones de acceso:
| QString | clientId() const |
| void | setClientId(const QString &clientId) |
Señal de notificador:
| void | clientIdChanged(QString clientId) |
error : ClientError
Especifica el error actual del cliente.
Funciones de acceso:
| QMqttClient::ClientError | error() const |
| void | setError(QMqttClient::ClientError error) |
Señal del notificador:
| void | errorChanged(QMqttClient::ClientError error) |
hostname : QString
Esta propiedad contiene el nombre de host del broker MQTT al que conectarse.
Si no se especifica ningún transporte a través de setTransport(), el cliente creará una conexión de socket con el nombre de host especificado.
Funciones de acceso:
| QString | hostname() const |
| void | setHostname(const QString &hostname) |
Señal de notificador:
| void | hostnameChanged(QString hostname) |
keepAlive : quint16
Esta propiedad mantiene el intervalo en el que se envían mensajes ping regulares al broker.
Una vez establecida la conexión con un broker, el cliente necesita enviar actualizaciones frecuentes para propagar que aún puede ser alcanzado. El intervalo entre esas actualizaciones se especifica mediante esta propiedad.
El intervalo se especifica en segundos.
Si el broker no responde en un periodo de gracia, la conexión se cerrará.
Funciones de acceso:
| quint16 | keepAlive() const |
| void | setKeepAlive(quint16 keepAlive) |
Señal de notificador:
| void | keepAliveChanged(quint16 keepAlive) |
Véase también autoKeepAlive(), requestPing(), y pingResponseReceived().
password : QString
Esta propiedad contiene la contraseña para conectarse a un broker.
Funciones de acceso:
| QString | password() const |
| void | setPassword(const QString &password) |
Señal de notificador:
| void | passwordChanged(QString password) |
port : quint16
Esta propiedad contiene el puerto para conectarse al broker MQTT.
Si no se especifica ningún transporte a través de setTransport(), el cliente instanciará una conexión de socket a un host con este número de puerto.
Funciones de acceso:
| quint16 | port() const |
| void | setPort(quint16 port) |
Señal de notificador:
| void | portChanged(quint16 port) |
protocolVersion : ProtocolVersion
Esta propiedad contiene la versión del estándar MQTT a utilizar para las conexiones.
Especifica la versión del estándar que utiliza el cliente para conectarse a un broker. Los valores válidos son:
- 3: Versión 3.1 del estándar MQTT.
- 4: Estándar MQTT versión 3.1.1, a menudo denominado MQTT 4.
- 5: Estándar MQTT 5.0.
Funciones de acceso:
| QMqttClient::ProtocolVersion | protocolVersion() const |
| void | setProtocolVersion(QMqttClient::ProtocolVersion protocolVersion) |
Señal de notificador:
| void | protocolVersionChanged(QMqttClient::ProtocolVersion protocolVersion) |
state : ClientState
Esta propiedad contiene el estado actual del cliente.
Funciones de acceso:
| QMqttClient::ClientState | state() const |
| void | setState(QMqttClient::ClientState state) |
Señal del notificador:
| void | stateChanged(QMqttClient::ClientState state) |
username : QString
Esta propiedad contiene el nombre de usuario para conectarse a un broker.
Funciones de acceso:
| QString | username() const |
| void | setUsername(const QString &username) |
Señal de notificador:
| void | usernameChanged(QString username) |
willMessage : QByteArray
Esta propiedad contiene la carga útil de un mensaje de testamento.
Funciones de acceso:
| QByteArray | willMessage() const |
| void | setWillMessage(const QByteArray &willMessage) |
Señal del notificador:
| void | willMessageChanged(QByteArray willMessage) |
willQoS : quint8
Esta propiedad contiene el nivel de QoS para el envío y almacenamiento del Mensaje de Voluntad.
Funciones de acceso:
| quint8 | willQoS() const |
| void | setWillQoS(quint8 willQoS) |
Señal del notificador:
| void | willQoSChanged(quint8 willQoS) |
willRetain : bool
Esta propiedad indica si el mensaje de testamento debe conservarse en el corredor para que lo reciban futuros suscriptores.
Funciones de acceso:
| bool | willRetain() const |
| void | setWillRetain(bool willRetain) |
Señal del notificador:
| void | willRetainChanged(bool willRetain) |
willTopic : QString
Esta propiedad contiene el tema del testamento.
Funciones de acceso:
| QString | willTopic() const |
| void | setWillTopic(const QString &willTopic) |
Señal del notificador:
| void | willTopicChanged(QString willTopic) |
Documentación de la Función Miembro
[explicit] QMqttClient::QMqttClient(QObject *parent = nullptr)
Crea una nueva instancia de cliente MQTT con la dirección parent especificada.
[override virtual noexcept] QMqttClient::~QMqttClient()
Elimina un cliente MQTT. Si el cliente MQTT no estaba ya desconectado del broker MQTT, se desconectará automáticamente.
Nota: Si se especifica un transporte con setTransport debe ser válido en este punto.
void QMqttClient::authenticate(const QMqttAuthenticationProperties &prop)
Envía una solicitud de autenticación al intermediario. prop especifica la información necesaria para completar la solicitud de autenticación.
Esta función sólo debe llamarse después de que se haya emitido una señal QMqttClient::authenticationRequested.
Nota: La autenticación extendida forma parte del estándar MQTT 5.0 y sólo puede utilizarse cuando el cliente especifica MQTT_5_0 como ProtocolVersion.
Véase también authenticationRequested() y authenticationFinished().
[signal] void QMqttClient::authenticationFinished(const QMqttAuthenticationProperties &p)
Esta señal se emite una vez finalizada la autenticación extendida. p especifica los detalles disponibles sobre el proceso de autenticación.
Tras una autenticación correcta se emite QMqttClient::connected.
Nota: La autenticación extendida forma parte del estándar MQTT 5.0 y sólo puede utilizarse cuando el cliente especifica MQTT_5_0 como ProtocolVersion.
Véase también authenticationRequested() y authenticate().
[signal] void QMqttClient::authenticationRequested(const QMqttAuthenticationProperties &p)
Esta señal se emite después de que un cliente invoque QMqttClient::connectToHost o QMqttClient::connectToHostEncrypted y antes de que se establezca la conexión. En la autenticación extendida, un broker puede solicitar detalles adicionales que deben ser proporcionados invocando QMqttClient::authenticate. p especifica propiedades proporcionadas por el broker.
Nota: La autenticación extendida forma parte del estándar MQTT 5.0 y sólo puede utilizarse cuando el cliente especifica MQTT_5_0 como ProtocolVersion.
Véase también authenticationFinished() y authenticate().
[signal] void QMqttClient::brokerSessionRestored()
Esta señal se emite después de que un cliente se haya conectado con éxito a un corredor con la propiedad cleanSession establecida en false, y el corredor haya restaurado la sesión.
Las sesiones se pueden restaurar si un cliente se ha conectado previamente utilizando el mismo clientId.
[invokable] void QMqttClient::connectToHost()
Inicia una conexión con el broker MQTT.
Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.
void QMqttClient::connectToHostEncrypted(const QSslConfiguration &conf)
Inicia una conexión cifrada con el broker MQTT.
conf especifica la configuración SSL que se utilizará para la conexión.
[invokable, since 6.10] void QMqttClient::connectToHostWebSocket(QWebSocket *webSocket = nullptr)
Establece un tipo de transporte de socket web e inicia una conexión con el broker MQTT. El tipo de transporte anterior es reemplazado. Si se da webSocket, se ignora el nombre de host y el puerto, y la conexión se realiza con ese websocket. webSocket es propiedad del código que llama, y debe ser válido durante el tiempo de vida del objeto QMqttClient.
Nota: Esta función puede ser invocada a través del sistema de meta-objetos y desde QML. Véase Q_INVOKABLE.
Esta función se introdujo en Qt 6.10.
[invokable, since 6.10] void QMqttClient::connectToHostWebSocketEncrypted(QWebSocket *webSocket = nullptr)
Establece un tipo de transporte websocket seguro e inicia una conexión con el broker MQTT. El tipo de transporte anterior es reemplazado. Si se da webSocket, se ignora el nombre de host y el puerto, y la conexión se realiza con ese websocket. webSocket es propiedad del código que llama, y debe ser válido durante el tiempo de vida del objeto QMqttClient.
Nota: Esta función puede ser invocada a través del sistema de meta-objetos y desde QML. Véase Q_INVOKABLE.
Esta función se introdujo en Qt 6.10.
[signal] void QMqttClient::connected()
Esta señal se emite cuando se ha establecido una conexión.
QMqttConnectionProperties QMqttClient::connectionProperties() const
Devuelve las propiedades de conexión que el cliente solicita al broker.
Nota: QMqttConnectionProperties sólo puede utilizarse cuando el cliente especifica MQTT_5_0 como ProtocolVersion.
Véase también setConnectionProperties().
[invokable] void QMqttClient::disconnectFromHost()
Se desconecta del broker MQTT.
Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.
[signal] void QMqttClient::disconnected()
Esta señal se emite cuando se ha cerrado una conexión. Una conexión puede cerrarse cuando se llama a disconnectFromHost() o cuando el broker se desconecta.
QMqttLastWillProperties QMqttClient::lastWillProperties() const
Devuelve las propiedades de la última voluntad.
Nota: QMqttLastWillProperties sólo puede utilizarse cuando el cliente especifica MQTT_5_0 como ProtocolVersion.
Véase también setLastWillProperties().
[signal] void QMqttClient::messageReceived(const QByteArray &message, const QMqttTopicName &topic = QMqttTopicName())
Esta señal se emite cuando se recibe un nuevo mensaje. La categoría del mensaje se especifica mediante topic siendo el contenido message.
[signal] void QMqttClient::messageSent(qint32 id)
Indica que un mensaje que fue enviado a través de la función publish() ha sido recibido por el broker. El id es el mismo que devuelve publish() para ayudar a seguir el estado del mensaje.
[signal] void QMqttClient::messageStatusChanged(qint32 id, QMqtt::MessageStatus s, const QMqttMessageStatusProperties &properties)
Esta señal se emite cuando cambia el estado del mensaje identificado por id. s especifica el nuevo estado del mensaje, y properties especifica propiedades adicionales proporcionadas por el servidor.
[signal] void QMqttClient::pingResponseReceived()
Esta señal se emite después de que el broker responda a una llamada requestPing() o a un mensaje ping keepAlive(), y la conexión siga siendo válida.
[invokable] qint32 QMqttClient::publish(const QMqttTopicName &topic, const QByteArray &message = QByteArray(), quint8 qos = 0, bool retain = false)
Publica un message en el broker con el topic especificado. qos especifica el nivel de QoS necesario para transferir el mensaje.
Si retain se establece en true, el mensaje permanecerá en el broker para que otros clientes se conecten y reciban el mensaje.
Devuelve un ID que se utiliza internamente para identificar el mensaje.
Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.
[invokable] qint32 QMqttClient::publish(const QMqttTopicName &topic, const QMqttPublishProperties &properties, const QByteArray &message = QByteArray(), quint8 qos = 0, bool retain = false)
Publica un message en el broker con los valores properties y topic especificados. qos especifica el nivel de QoS necesario para transferir el mensaje.
Si retain se establece en true, el mensaje permanecerá en el broker para que otros clientes se conecten y reciban el mensaje.
Devuelve un ID que se utiliza internamente para identificar el mensaje.
Nota: properties sólo se pasará al broker cuando el cliente especifique MQTT_5_0 como ProtocolVersion.
Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.
bool QMqttClient::requestPing()
Envía un mensaje ping al broker y espera una respuesta.
Si la conexión está activa y autoKeepAlive es true, entonces la llamada a esta función fallará ya que el cliente es responsable de gestionar este proceso.
Utilizar requestPing() manualmente requiere una llamada cada vez dentro del intervalo keepAlive mientras la conexión esté activa.
Para comprobar si el ping ha tenido éxito, conéctese a la señal pingResponseReceived().
Devuelve true si se ha podido enviar la solicitud de ping.
Véase también pingResponseReceived(), autoKeepAlive(), y keepAlive().
QMqttServerConnectionProperties QMqttClient::serverConnectionProperties() const
Devuelve el QMqttServerConnectionProperties que el broker devolvió después de un intento de conexión.
Esto se puede utilizar para verificar que las propiedades de conexión del lado del cliente establecidas por QMqttClient::setConnectionProperties han sido aceptadas por el broker. Además, en caso de un intento de conexión fallido, puede utilizarse para diagnosticar la conexión.
Nota: QMqttServerConnectionProperties sólo puede utilizarse cuando el cliente especifica MQTT_5_0 como ProtocolVersion.
Véase también connectionProperties().
void QMqttClient::setConnectionProperties(const QMqttConnectionProperties &prop)
Establece las propiedades de conexión en prop. QMqttConnectionProperties puede utilizarse para pedir al servidor que utilice un conjunto de características específico. Después de una solicitud de conexión, la respuesta del servidor se puede obtener llamando a QMqttClient::serverConnectionProperties.
Nota: Las propiedades de conexión sólo pueden establecerse si el cliente MQTT se encuentra en el estado Disconnected.
Nota: QMqttConnectionProperties sólo puede utilizarse cuando el cliente especifica MQTT_5_0 como ProtocolVersion.
Véase también connectionProperties().
void QMqttClient::setLastWillProperties(const QMqttLastWillProperties &prop)
Establece las propiedades de la última voluntad en prop. QMqttLastWillProperties permite establecer características adicionales para el mensaje de última voluntad almacenado en el broker.
Nota: Las propiedades de conexión sólo se pueden establecer si el cliente MQTT está en el estado Disconnected.
Nota: QMqttLastWillProperties sólo puede utilizarse cuando el cliente especifica MQTT_5_0 como ProtocolVersion.
Véase también lastWillProperties().
void QMqttClient::setTransport(QIODevice *device, QMqttClient::TransportType transport)
Establece el transporte en device. Un transporte puede ser de tipo socket o derivado de QIODevice y se especifica en transport.
Nota: El transporte sólo se puede intercambiar si el cliente MQTT está en el estado Disconnected.
Nota: Establecer un transporte personalizado para un cliente no transfiere la responsabilidad sobre la gestión o propiedad de la conexión. El transporte debe estar abierto para los transportes basados en QIODevice o conectado para los transportes de tipo socket antes de llamar a QMqttClient::connectToHost().
Véase también transport().
QMqttSubscription *QMqttClient::subscribe(const QMqttTopicFilter &topic, quint8 qos = 0)
Añade una nueva suscripción para recibir notificaciones en topic. El parámetro qos especifica el nivel al que se reciben los mensajes de seguridad. Para obtener más información sobre los niveles de calidad de servicio disponibles, consulte Calidad de servicio.
Esta función devuelve un puntero a un QMqttSubscription. Si el mismo tema se suscribe dos veces, el valor de retorno apunta a la misma instancia de suscripción. El cliente MQTT es el propietario de la suscripción.
QMqttSubscription *QMqttClient::subscribe(const QMqttTopicFilter &topic, const QMqttSubscriptionProperties &properties, quint8 qos = 0)
Añade una nueva suscripción para recibir notificaciones en topic. El parámetro properties especifica propiedades adicionales de la suscripción que deben ser validadas por el broker. El parámetro qos especifica el nivel en el que se reciben los mensajes de seguridad. Para obtener más información sobre los niveles de calidad de servicio disponibles, consulte Calidad de servicio.
Esta función devuelve un puntero a un QMqttSubscription. Si el mismo tema se suscribe dos veces, el valor de retorno apunta a la misma instancia de suscripción. El cliente MQTT es el propietario de la suscripción.
Nota: properties sólo se pasará al agente cuando el cliente especifique MQTT_5_0 como ProtocolVersion.
QIODevice *QMqttClient::transport() const
Devuelve el transporte utilizado para la comunicación con el broker.
Véase también setTransport().
void QMqttClient::unsubscribe(const QMqttTopicFilter &topic)
Se da de baja de topic. No se enviarán notificaciones a ninguna de las suscripciones realizadas llamando a subscribe().
Nota: Si un cliente se desconecta de un corredor sin darse de baja, el corredor almacenará todos los mensajes y los publicará en la siguiente reconexión.
void QMqttClient::unsubscribe(const QMqttTopicFilter &topic, const QMqttUnsubscriptionProperties &properties)
Se da de baja de topic. No se enviarán notificaciones a ninguna de las suscripciones realizadas llamando a subscribe(). properties especifica propiedades de usuario adicionales que se pasarán al corredor.
Nota: Si un cliente se desconecta de un broker sin darse de baja, el broker almacenará todos los mensajes y los publicará en la próxima reconexión.
Nota: properties sólo se pasará al broker cuando el cliente especifique MQTT_5_0 como ProtocolVersion.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.