Puede conectar dispositivos a IoT Platform mediante MQTT. Este artículo describe cómo establecer conexiones MQTT basadas en IPv6 entre los dispositivos e IoT Platform.
Límites
Solo la región China (Shanghai) admite conexiones MQTT basadas en IPv6.
Conectar un dispositivo a IoT Platform
Descargue el certificado raíz que se usa para el cifrado TLS. Para obtener más información sobre cómo usar el certificado raíz, consulte CA Certificates.
-
Desarrolle su dispositivo para configurar una conexión MQTT.
Se recomienda usar los SDK de dispositivos proporcionados por Alibaba Cloud para conectarse a IoT Platform. Si usa SDK de dispositivos personalizados, debe configurar un mecanismo de firma. Para obtener más información, consulte Examples of creating signatures for MQTT connections.
A continuación se describen los parámetros.
Parámetro Descripción Nombre de dominio y puerto El nombre de dominio es ipv6.itls.cn-shanghai.aliyuncs.comy el puerto es 1883.Encabezado variable: Keep Alive El mensaje CONNECT debe incluir un periodo de keep-alive. Los valores válidos van de 30 a 1,200 segundos. Si el valor del parámetro Keep Alive no se encuentra dentro de este rango, IoT Platform rechaza la conexión. Se recomienda establecer un valor superior a 300 segundos. Si la conexión de red es inestable, configure un periodo de keep-alive alto. Parámetros en un mensaje MQTT CONNECT mqttClientId: clientId+"|securemode=2,signmethod=hmacsha1,timestamp=132323232|" mqttUsername: deviceName+"&"+productKey mqttPassword: sign_hmac(deviceSecret,content)mqttPassword: la contraseña. Método de cálculo: ordene alfabéticamente los parámetros enviados al servidor y cífrelos con base en el algoritmo de firma especificado.
content: cadena concatenada de los parámetros enviados al servidor. Estos parámetros incluyen productKey, deviceName, timestamp y clientId. Los parámetros se ordenan alfabéticamente y se concatenan sin delimitadores.
- clientId: identificador del cliente. Se recomienda usar la dirección MAC o el número de serie (SN) del dispositivo como ID de cliente. La longitud máxima del ID de cliente es de 64 caracteres.
- timestamp: hora actual en milisegundos. Este parámetro es opcional.
- mqttClientId: los parámetros extendidos se colocan entre barras verticales (
|). - signmethod: algoritmo de firma. Valores válidos: hmacmd5, hmacsha1, hmacsha256 y sha256. Valor predeterminado: hmacmd5.
- securemode: modo de seguridad. Establezca el valor en 2 (conexión TLS directa).
Ejemplo:
Suponga que se especifican los siguientes valores:
clientId=12345, deviceName=device, productKey=pk, timestamp=789, signmethod=hmacsha1, deviceSecret=secret. El siguiente código muestra los parámetros en un mensaje MQTT CONNECT enviado a través de TCP:mqttclientId=12345|securemode=2,signmethod=hmacsha1,timestamp=789| mqttUsername=device&pk mqttPassword=hmacsha1("secret","clientId12345deviceNamedeviceproductKeypktimestamp789").toHexString();La contraseña cifrada es una cadena hexadecimal convertida from una cadena binaria. El siguiente código muestra el resultado:
FAFD82A3D602B37FB0FA8B7892F24A477F85****