Todos los productos
Search
Centro de documentos

IoT Platform:Conexión a IoT Platform mediante MQTT.fx

Última actualización: Sep 03, 2026

Utilice MQTT.fx en Windows para simular un dispositivo que se conecta a Alibaba Cloud IoT Platform y pruebe las funciones principales de mensajería.

Requisitos previos

  • Debe haber creado un producto y un dispositivo, y obtenido los parámetros de conexión MQTT. Consulte Create products and devices y Obtain MQTT connection parameters.

    La siguiente tabla muestra el certificado del dispositivo y los parámetros de conexión MQTT utilizados en este ejemplo. Para obtener más información sobre los parámetros, consulte MQTT-TLS connection.

    Parámetro

    Valor

    ProductKey

    a1***

    DeviceName

    device1

    DeviceSecret

    f35***d9e

    clientId

    `a1***.device1

    securemode=2,signmethod=hmacsha256,timestamp=2524608000000

    `

    username

    device1&a1***

    passwd

    86761***21d

    mqttHostUrl

    a1***.iot-as-mqtt.cn-shanghai.aliyuncs.com

    port

    1883

  • Se han definido propiedades en el modelo TSL para probar la mensajería ascendente y descendente mediante temas de comunicación TSL. Consulte Define a TSL model for a product.

    Este ejemplo define las siguientes propiedades: LightCurrent (corriente de operación, tipo float, rango 0–9) y LightSwitch (interruptor de luz principal, tipo booleano, 1 = encendido, 0 = apagado).

Importante

Un dispositivo simulado con MQTT.fx solo puede utilizar datos sin paso directo. Para probar datos con paso directo, utilice un dispositivo físico o un SDK.

Configurar la conexión de MQTT.fx

  1. Descargue e instale MQTT.fx. Para consultar las instrucciones de instalación y uso, visite MQTT.fx.

    Este tema utiliza mqttfx-5.2.0-windows-x64 como ejemplo. La interfaz de usuario puede variar según las actualizaciones de versión.

    Nota

    Debe solicitar una licencia para utilizar la herramienta MQTT.fx.

  2. Abra el software MQTT.fx, haga clic en Extras en la barra de menús y seleccione Edit Connection Profiles.

  3. En la página Edit Connection Profiles, configure los siguientes parámetros.

    1. Configure la información básica.

      Parámetro

      Descripción

      Profile Name

      Introduzca un nombre personalizado, por ejemplo iot connection.

      Profile Type

      Seleccione MQTT Broker.

      Broker Address

      El endpoint de conexión MQTT. Utilice el valor mqttHostUrl de la sección Requisitos previos: a1***.iot-as-mqtt.cn-shanghai.aliyuncs.com.

      • a1*** es el ProductKey del producto.

      • cn-shanghai es el ID de región.

      Introduzca únicamente el nombre de dominio. No incluya el número de puerto.

      Broker Port

      Establezca el valor en 1883.

      Client ID

      Campo del protocolo MQTT.

      Formato: ${ClientId}|securemode=${Mode},signmethod=${SignMethod}|timestamp=${timestamp}|.

      Introduzca el valor clientId de la sección Requisitos previos: a1***.device1|securemode=2,signmethod=hmacsha256,timestamp=2524608000000|.

      Descripción de parámetros:

      • ${ClientId}: El ID de cliente para un dispositivo, aplicación o cliente web.

        Importante

        Debe ser personalizado y tener una longitud máxima de 64 caracteres. Para dispositivos, utilice la dirección MAC o el número de serie (SN).

      • ${Mode}: Modo de seguridad. Establezca el valor en 2 para TLS directo (requiere configuración de SSL/TLS) o en 3 para TCP directo (no requiere configuración de SSL/TLS).

      • ${SignMethod}: Algoritmo de firma. Valores compatibles: hmacsha256, hmacmd5 y hmacsha1.

      • ${timestamp}: Hora actual en milisegundos. El parámetro timestamp es opcional.

      De forma predeterminada, IoT Platform establece ${ClientId} en ${ProductKey}.${DeviceName}, ${Mode} en 2 y ${SignMethod} en hmacsha256. Modifique estos valores según sea necesario.

      Importante
      • No confunda el campo Client ID de MQTT.fx con el valor ${ClientId} del dispositivo.

      • No omita las barras verticales (|) entre los parámetros ni al final de la cadena.

      • Asegúrese de que los valores de los parámetros no tengan espacios al inicio ni al final.

      • Después de introducir la información del Client ID, no haga clic en Generate.

      General

      En este ejemplo se utiliza la configuración predeterminada. Modifíquela según su escenario.

    2. Haga clic en User Credentials, seleccione la casilla Use Username/Password y configure User Name y Password.

      Parámetro

      Descripción

      User Name

      El nombre de usuario se compone del DeviceName del dispositivo, un signo et (&) y el ProductKey del producto, con el formato ${DeviceName}&${ProductKey}.

      Introduzca el valor username de la sección Requisitos previos: device1&a1***.

      • device1 es el DeviceName del dispositivo.

      • a1*** es el ProductKey del producto.

      Password

      La contraseña se genera al cifrar los parámetros concatenados con el DeviceSecret como clave, mediante el algoritmo de firma seleccionado.

      Introduzca el valor passwd de la sección Requisitos previos: 86761***21d.

      Importante
      • En algunas versiones de MQTT.fx, la contraseña se oculta después de pegarla. Si el cursor se mueve al final, significa que se pegó correctamente. No vuelva a pegar el contenido.

      • Los parámetros y sus valores distinguen entre mayúsculas y minúsculas.

      • Si modificó ${ClientId} o ${SignMethod} en el Client ID, asegúrese de que los valores de la firma coincidan con los del Client ID y vuelva a calcular la contraseña. Consulte Calculate the password by using a Node.js script.

    3. Para una conexión TLS directa (securemode=2), haga clic en SSL/TLS, seleccione Enable SSL/TLS y establezca Protocol en TLSv1.2.

      Importante

      Para una conexión TCP directa (securemode=3), no es necesario configurar los ajustes de SSL/TLS. Continúe con el siguiente paso.

  4. Haga clic en OK en la esquina inferior derecha.

  5. Haga clic en Connect.

    Un indicador verde confirma que la conexión a IoT Platform se estableció correctamente.

    Compruebe el estado del dispositivo en la consola de IoT Platform. En su instancia, vaya a Devices > Devices, seleccione el producto y confirme que el estado del dispositivo es Online.

Las siguientes secciones prueban la mensajería ascendente y descendente mediante temas personalizados y temas de comunicación TSL. Si los resultados difieren, significa que la conexión falló; corrija la configuración basándose en la información de los registros.

Uso de temas personalizados para la comunicación

Para obtener más información sobre los temas personalizados, consulte Use custom topics for communication. Este ejemplo utiliza los temas personalizados predeterminados proporcionados por IoT Platform:

Tema

Permiso

Descripción

/a1***/device1/user/update/error

publish

Mensajería ascendente: El dispositivo envía mensajes a IoT Platform en este tema.

/a1***/device1/user/get

subscribe

Mensajería descendente: El dispositivo se suscribe para recibir mensajes de IoT Platform.

Mensajería ascendente

  1. En MQTT.fx, haga clic en Publish. En el cuadro de texto Publish, introduzca el tema con permiso de publish: /a1***/device1/user/update/error.

  2. Introduzca el contenido del mensaje en el editor de texto y haga clic en Publish.

    Asegúrese de que QoS esté configurado en QoS 0 y de que el cuerpo del mensaje sea, por ejemplo, This is a publish test..

  3. En la consola de IoT Platform, abra la página Device Log de su instancia y revise los registros de device-to-cloud message. Consulte Query cloud-side running logs.

    Haga clic en View para ver una entrada de registro. En el cuadro de diálogo View Details, compruebe que el Topic sea /a[ProductKey]/device1/user/update/error y que el contenido del mensaje sea This is a publish test..

Mensajería descendente

  1. En MQTT.fx, haga clic en Subscribe. En el cuadro de texto Subscribe, introduzca el tema con permiso de Subscribe: /a1***/device1/user/get.

  2. Haga clic en Subscribe.

    Después de la suscripción, el tema aparece en la lista.

  3. En la consola de IoT Platform, vaya a Devices > Devices en su instancia.

  4. En la columna Actions del dispositivo, haga clic en View para abrir la página de device details.

  5. Haga clic en la pestaña Topic List. En la columna Actions del tema suscrito, haga clic en Publish Message.

  6. Introduzca un mensaje, como This is a test., y haga clic en OK.

  7. Regrese a MQTT.fx para ver el mensaje recibido.

    En la pestaña Subscribe, el tema /a{ProductKey}/device1/user/get recibe el mensaje This is a test (QoS 0, decodificado con Plain Text Decoder).

Uso de temas para la comunicación TSL

Para obtener más información sobre los temas de comunicación TSL, consulte What is a topic?. Este ejemplo utiliza los siguientes temas de comunicación TSL:

Tema

Permiso

Descripción

/sys/a1****/device1/thing/event/property/post

publish

Mensajería ascendente: El dispositivo utiliza este tema para reportar datos de propiedades a IoT Platform.

/sys/a1****/device1/thing/event/property/post_reply

subscribe

Mensajería descendente: El dispositivo se suscribe para recibir respuestas después de reportar datos de propiedades.

/sys/a1****/device1/thing/service/property/set

subscribe

Mensajería descendente: El dispositivo se suscribe para recibir comandos de configuración de propiedades desde IoT Platform.

Reportar propiedades del dispositivo

  1. En MQTT.fx, haga clic en Subscribe. En el cuadro de texto Subscribe, introduzca el tema con permisos de subscribe: /sys/a1****/device1/thing/event/property/post_reply.

  2. En MQTT.fx, haga clic en Publish y, en el cuadro de texto Publish, introduzca un tema con permiso de publish: /sys/a1****/device1/thing/event/property/post.

  3. Introduzca los datos de las propiedades en el editor de texto y haga clic en Publish.

    Los datos de las propiedades deben utilizar el formato estándar Alink JSON. Consulte Device reports properties. Este ejemplo reporta las propiedades LightCurrent y LightSwitch. El tema es /sys/${ProductKey}/device1/thing/event/property/post, con la siguiente carga útil JSON de ejemplo: {"method":"thing.event.property.post","id":"162277852","params":{"LightSwitch":1,"LightCurrent":1.4},"version":"1.0.0"}.

  4. En la pestaña Subscribe de MQTT.fx, consulte el mensaje de respuesta de IoT Platform.

    Si la operación es exitosa, IoT Platform devuelve una respuesta similar a la siguiente:

    /sys/${YourProductKey}/device1/thing/event/property/post_reply
    {"code":200,"data":{},"id":"162277852","message":"success","method":"thing.event.property.post","version":"1.0"}
  5. En la consola de IoT Platform, vaya a Devices > Devices en su instancia.

  6. Haga clic en View en la columna Actions del dispositivo. En la página de device details, haga clic en la pestaña TSL Data para ver los datos reportados.

Establecer propiedades del dispositivo

  1. En MQTT.fx, haga clic en Subscribe. En el cuadro de texto Subscribe, introduzca el tema con permiso de Subscribe: /sys/a1****/device1/thing/service/property/set.

  2. En la consola de IoT Platform, vaya a Maintenance > Online Debug en su instancia.

  3. Seleccione el dispositivo. En la pestaña Property Debugging, establezca LightSwitch en 0.

  4. Haga clic en Set para enviar el comando.

  5. En la pestaña Subscribe de MQTT.fx, consulte el mensaje recibido.

    /sys/axxxxx/device1/thing/service/property/set
    {"method":"thing.service.property.set","id":"2016306076","params":{"LightSwitch":0},"version":"1.0.0"}

Consulta de registros

  • En la consola de IoT Platform, abra la página Device Log de su instancia para ver los mensajes de registro de ejecución, incluida la hora, el TraceID y el tipo de negocio. Consulte Query cloud-side running logs.

  • En MQTT.fx, haga clic en la pestaña Log para ver los registros de operaciones y errores.

    INFO --- MqttFX ClientModel            : messageArrived() with topic: /ext/error/axxx0/device1
    INFO --- PublishController              : publish
    INFO --- MqttFX ClientModel            : attempt to add PublishTopic
    INFO --- MqttFX ClientModel            : addPublishTopic : /a1xxx/device1/user/get
    INFO --- MqttFX ClientModel            : sucessfully published message test to topic /axxx/device1/user/g
    INFO --- PublishController              : publish
    INFO --- MqttFX ClientModel            : attempt to add PublishTopic
    INFO --- MqttFX ClientModel            : sucessfully published message test to topic /axxx/device1/user/g
    INFO --- PublishController              : publish
    INFO --- MqttFX ClientModel            : attempt to add PublishTopic
    INFO --- MqttFX ClientModel            : sucessfully published message test to topic /axxx/device1/user/g
    INFO --- BrokerConnectorController     : onDisconnect
    INFO --- ScriptsController              : Clear console.
    INFO --- ScriptsController              : Cancel script excution.
    INFO --- ScriptsController              : Clear console.
    INFO --- ScriptsController              : Cancel script excution.
    INFO --- ScriptsController              : Clear console.
    INFO --- ScriptsController              : Cancel script excution.
    INFO --- BrokerConnectorController     : onConnect
    INFO --- ScriptsController              : Clear console.
    INFO --- MqttFX ClientModel            : MqttClient with ID a1xxx0.device1|securemode=2,signmethod=hmacsha...
    INFO --- MqttFX ClientModel            : session present: false
    INFO --- SubscribeController            : onSubscribe
    INFO --- MqttFX ClientModel            : rebuildMessagesList()
    INFO --- MqttFX ClientModel            : attempt to addRecentSubscriptionTopic
    INFO --- MqttFX ClientModel            : addRecentSubscriptionTopic : de.jensd.mqttfx.entities.Topixxx1
    INFO --- MqttFX ClientModel            : attempt to add PublishTopic
    INFO --- MqttFX ClientModel            : addPublishTopic : /axxx/device1/user/get
    INFO --- MqttFX ClientModel            : sucessfully subscribed to topic /a1xxxSp0/device1/user/get (QoS 0)
    INFO --- MqttFX ClientModel            : messageArrived() with topic: /a1Kucxxx/device1/user/get
    INFO --- MqttFX ClientModel            : messageArrived() added: message #1 to topic '/axxx/device1/user/...
    INFO --- PublishController              : publish
    INFO --- MqttFX ClientModel            : attempt to add PublishTopic
    INFO --- MqttFX ClientModel            : addPublishTopic : /a1xxx/device1/user/update/error
    INFO --- MqttFX ClientModel            : sucessfully published message This is a publish test. to topic /a1Kuc5xxx/device1/user/get

Documentos relacionados

  • IoT Platform admite el protocolo MQTT, ampliamente utilizado en IoT para entornos con recursos limitados y bajo ancho de banda. Consulte MQTT protocol specifications.

  • Para conectar un dispositivo a IoT Platform, consulte la device connection guide.

  • Los temas actúan como intermediarios para la publicación y suscripción de mensajes MQTT. Para conocer los conceptos y definiciones de los temas, consulte What is a topic?.