Todos los productos
Search
Centro de documentos

:Conexión a IoT Platform mediante MQTT

Última actualización: Sep 04, 2026

Este tema describe las operaciones de API que debe invocar cuando utiliza Link SDK for C para conectar un dispositivo a IoT Platform mediante Message Queuing Telemetry Transport (MQTT).

IOT_MQTT_Construct

  • Prototipo

    void *IOT_MQTT_Construct(iotx_mqtt_param_t *pInitParams)
  • Descripción

    Si establece el parámetro pInitParams en NULL al invocar la operación para conectarse a IoT Platform mediante MQTT, se utilizan los valores predeterminados para los demás parámetros.

  • Parámetro

    Parámetro

    Tipo

    Categoría

    Descripción

    pInitParams

    iotx_mqtt_param_t *

    Solicitud

    El parámetro de inicialización de MQTT. Si especifica NULL para el parámetro de solicitud, se utilizan los valores predeterminados para los parámetros de la estructura.

  • Parámetros en la estructura

    typedef struct {
        uint16_t                   port;
        const char                 *host;
        const char                 *client_id;
        const char                 *username;
        const char                 *password;
        const char                 *pub_key;
        const char                 *customize_info;
        uint8_t                    clean_session;
        uint32_t                   request_timeout_ms;
        uint32_t                   keepalive_interval_ms;
        uint32_t                   write_buf_size;
        uint32_t                   read_buf_size;
        iotx_mqtt_event_handle_t    handle_event;
    } iotx_mqtt_param_t, *iotx_mqtt_param_pt;

    Parámetro

    Descripción

    port

    El número de puerto del servidor MQTT.

    host

    El endpoint del servidor MQTT.

    client_id

    El ID del cliente MQTT.

    username

    El nombre de usuario que se utiliza para iniciar sesión en el servidor MQTT.

    password

    La contraseña que se utiliza para iniciar sesión en el servidor MQTT.

    pub_key

    El método de cifrado y la clave para la conexión MQTT.

    clean_session

    Especifica si se debe utilizar la función de sesión limpia de MQTT.

    request_timeout_ms

    El periodo de tiempo de espera para los mensajes MQTT.

    keepalive_interval_ms

    El periodo de tiempo de espera para los latidos MQTT.

    write_buf_size

    El tamaño máximo del búfer que se utiliza para almacenar los mensajes MQTT pendientes de envío.

    read_buf_size

    El tamaño máximo del búfer que se utiliza para almacenar los mensajes MQTT recibidos.

    handle_event

    La función de devolución de llamada personalizada que desea utilizar para recibir datos de eventos de un módulo MQTT.

    customize_info

    Los datos personalizados que se van a notificar. Separe los pares clave-valor en una cadena con comas (,). Por ejemplo, "pid=123456,mid=abcd"; se utiliza para describir la información sobre un fabricante y un módulo.

    Nota

    Si establece los elementos de la estructura pInitParams en 0 o establece el parámetro pInitParams en NULL, se utilizan los parámetros predefinidos predeterminados.

  • Valores de retorno

    Valor

    Descripción

    NULL

    Con errores

    Distinto de NULL

    Identificador MQTT

IOT_MQTT_Destroy

  • Prototipo

    int IOT_MQTT_Destroy(void **phandle);
  • Descripción

    Puede invocar esta operación para cerrar una conexión MQTT y liberar los recursos relacionados.

  • Parámetros

    Parámetro

    Tipo

    Categoría

    Descripción

    phandle

    void **

    Solicitud

    El identificador MQTT. Puede establecer el parámetro en NULL.

  • Valores de retorno

    Valor

    Descripción

    0

    Exitoso

    < 0

    Con errores

IOT_MQTT_Yield

  • Prototipo

    int IOT_MQTT_Yield(void *handle, int timeout_ms);
  • Descripción

    Puede invocar esta operación para recibir paquetes de red y reenviar los mensajes contenidos en ellos a una función de devolución de llamada personalizada.

  • Parámetros

    Parámetro

    Tipo

    Categoría

    Descripción

    handle

    void *

    Solicitud

    El identificador MQTT. Puede establecer el parámetro en NULL.

    timeout_ms

    int

    Solicitud

    El periodo de tiempo de espera para las solicitudes de recepción de paquetes.

  • Descripción del valor de retorno

    Valor

    Descripción

    0

    Exitoso

IOT_MQTT_CheckStateNormal

  • Prototipo

    int IOT_MQTT_CheckStateNormal(void *handle);
  • Descripción

    Puede invocar esta operación para consultar el estado de una conexión MQTT.

  • Parámetros

    Parámetro

    Tipo

    Categoría

    Descripción

    handle

    void *

    Solicitud

    El identificador MQTT. Puede establecer el parámetro en NULL.

  • Descripción del valor de retorno

    Valor

    Descripción

    0

    Desconectado

    1

    Conectado

IOT_MQTT_Subscribe

  • Prototipo

    int IOT_MQTT_Subscribe(void *handle,
                            const char *topic_filter,
                            iotx_mqtt_qos_t qos,
                            iotx_mqtt_event_handle_func_fpt topic_handle_func,
                            void *pcontext);
  • Descripción

    Puede invocar esta operación para suscribirse a un tema MQTT de IoT Platform.

  • Parámetros

    Parámetro

    Tipo

    Categoría

    Descripción

    handle

    void *

    Solicitud

    El identificador MQTT. Puede establecer el parámetro en NULL.

    topic_filter

    const char *

    Solicitud

    El tema al que desea suscribirse.

    qos

    iotx_mqtt_qos_t

    Solicitud

    La política de calidad de servicio (QoS).

    topic_handle_func

    iotx_mqtt_event_handle_func_fpt

    Solicitud

    La función de devolución de llamada que desea utilizar para recibir mensajes MQTT.

    pcontext

    void *

    Solicitud

    El contexto personalizado. El contexto se devuelve desde la función de devolución de llamada.

  • Descripción del valor de retorno

    Valor

    Descripción

    0

    Exitoso

    < 0

    Con errores

IOT_MQTT_Subscribe_Sync

  • Prototipo

    int IOT_MQTT_Subscribe_Sync(void *handle,
                                const char *topic_filter,
                                iotx_mqtt_qos_t qos,
                                iotx_mqtt_event_handle_func_fpt topic_handle_func,
                                void *pcontext,
                                int timeout_ms);
  • Descripción

    Puede invocar esta operación para suscribirse a un tema MQTT de IoT Platform. Esta operación funciona de manera síncrona.

  • Parámetros

    Parámetro

    Tipo

    Categoría

    Descripción

    handle

    void *

    Solicitud

    El identificador MQTT. Puede establecer el parámetro en NULL.

    topic_filter

    const char *

    Solicitud

    El tema al que desea suscribirse.

    qos

    iotx_mqtt_qos_t

    Solicitud

    La política de QoS.

    topic_handle_func

    iotx_mqtt_event_handle_func_fpt

    Solicitud

    La función de devolución de llamada que desea utilizar para recibir mensajes MQTT.

    pcontext

    void *

    Solicitud

    El contexto personalizado. El contexto se devuelve desde la función de devolución de llamada.

    timeout_ms

    int

    Solicitud

    El periodo de tiempo de espera para la llamada síncrona.

  • Descripción del valor de retorno

    Valor

    Descripción

    0

    Exitoso

    < 0

    Con errores

IOT_MQTT_Unsubscribe

  • Prototipo

    int IOT_MQTT_Unsubscribe(void *handle, const char *topic_filter);
  • Descripción

    Puede invocar esta operación para cancelar la suscripción a un tema de IoT Platform.

  • Parámetros

    Parámetro

    Tipo

    Categoría

    Descripción

    handle

    void *

    Solicitud

    El identificador MQTT. Puede establecer el parámetro en NULL.

    topic_filter

    const char *

    Solicitud

    El tema del que desea cancelar la suscripción.

  • Descripción del valor de retorno

    Valor

    Descripción

    0

    Exitoso

    < 0

    Con errores

IOT_MQTT_Publish

  • Prototipo

    int IOT_MQTT_Publish(void *handle, const char *topic_name, iotx_mqtt_topic_info_pt topic_msg);
  • Descripción

    Puede invocar esta operación para enviar mensajes a un tema.

  • Parámetros

    Parámetro

    Tipo

    Categoría

    Descripción

    handle

    void *

    Solicitud

    El identificador MQTT. Puede establecer el parámetro en NULL.

    topic_name

    const char *

    Solicitud

    El tema al que desea enviar mensajes.

    topic_msg

    iotx_mqtt_topic_info_pt

    Solicitud

    Los mensajes que desea enviar.

  • Descripción del valor de retorno

    Valor

    Descripción

    > 0

    Exitoso. El valor se devuelve cuando se reciben mensajes QoS 1. El valor es el ID del mensaje MQTT contenido en el paquete notificado. El valor corresponde al valor del campo messageId en el protocolo MQTT.

    0

    Exitoso. El valor se devuelve cuando se reciben mensajes QoS 0.

    < 0

    Con errores

IOT_MQTT_Publish_Simple

  • Prototipo

    int IOT_MQTT_Publish_Simple(void *handle, const char *topic_name, int qos, void *data, int len)
  • Descripción

    Puede invocar esta operación para enviar mensajes a un tema.

    Nota
    • IOT_MQTT_Publish: envía mensajes comunes.

    • IOT_MQTT_Publish_Simple: envía mensajes con más opciones de configuración.

    Puede invocar la operación IOT_MQTT_Publish para enviar mensajes comunes. Puede invocar la operación IOT_MQTT_Publish_Simple para enviar mensajes con más opciones de configuración.

  • Parámetros

    Parámetro

    Tipo

    Categoría

    Descripción

    handle

    void *

    Solicitud

    El identificador MQTT. Puede establecer el parámetro en NULL.

    topic_name

    const char *

    Solicitud

    El tema al que desea enviar mensajes.

    qos

    int

    Solicitud

    La política de QoS.

    data

    void *

    Solicitud

    Los mensajes que desea enviar.

    len

    int

    Solicitud

    La longitud de los mensajes.

  • Descripción del valor de retorno

    Valor

    Descripción

    > 0

    Exitoso. El valor se devuelve cuando se reciben mensajes QoS 1. El valor es el ID del mensaje MQTT contenido en el paquete notificado. El valor corresponde al valor del campo messageId en el protocolo MQTT.

    0

    Exitoso. El valor se devuelve cuando se reciben mensajes QoS 0.

    < 0

    Con errores