Tous les produits
Search
Centre de documentation

IoT Platform:Establish MQTT over WebSocket connections

Dernière mise à jour :Aug 09, 2026

IoT Platform prend en charge MQTT sur WebSocket. Établissez une connexion WebSocket, puis utilisez le protocole MQTT pour communiquer via ce canal.

Avantages

WebSocket offre les avantages suivants :

  • Les applications basées sur un navigateur peuvent établir des connexions MQTT persistantes avec le serveur, à l'instar des appareils classiques.

  • WebSocket utilise le port 443, qui traverse la plupart des pare-feu.

Procédure

  1. Préparez un certificat.

    WebSocket prend en charge deux protocoles : ws (non chiffré) et wss (chiffré TLS). Pour les connexions wss, utilisez le même certificat racine que pour les connexions TLS directes.

  2. Sélectionnez un client.

    Utilisez le client ApsaraMQ for MQTT et remplacez l'URL de connexion. Pour les autres langages, choisissez parmi les clients MQTT open source. Vérifiez que votre client prend en charge WebSocket.

  3. Connectez-vous à IoT Platform.

    L'URL de connexion MQTT WebSocket utilise un protocole et un port différents d'une connexion TCP directe. Les autres paramètres MQTT restent identiques. Définissez securemode=2 pour les connexions wss et securemode=3 pour les connexions ws.

    • Endpoint : wss://${MQTT_Endpoint} ou ws://${MQTT_Endpoint}. Les endpoints MQTT des instances publiques et Enterprise sont répertoriés dans Afficher et configurer les informations d'endpoint de l'instance (Endpoint).

    • Port : 443.

    • En-tête variable : Keep Alive.

      Le message Connect doit inclure Keep Alive, qui spécifie l'intervalle de maintien de la connexion en secondes. Plage valide : 30 à 1200. IoT Platform rejette les connexions en dehors de cette plage. Définissez l'intervalle sur 300 secondes ou plus. Utilisez un intervalle plus long pour les réseaux instables.

      Le client doit envoyer au moins un message, tel qu'une requête PING, dans chaque intervalle de maintien de la connexion.

      Si IoT Platform ne reçoit aucun message du client durant un intervalle de maintien de la connexion, il déconnecte le client. Le client doit alors se reconnecter.

    • Paramètres du message MQTT Connect :

      mqttClientId: clientId+"|securemode=3,signmethod=hmacsha1,timestamp=132323232|"
      mqttUsername: deviceName+"&"+productKey
      mqttPassword: sign_hmac(deviceSecret,content)

      Où :

      • mqttClientId : Les paramètres étendus sont placés entre des barres verticales (| |).

      • clientId : ID du client. Spécifiez un ID de client en fonction de vos besoins métier. L'ID de client ne peut pas dépasser 64 caractères. Nous vous recommandons d'utiliser l'adresse MAC ou le numéro de série (SN) de l'appareil comme ID de client.

      • securemode : Mode de sécurité. Les valeurs valides sont 2 (pour le protocole wss) et 3 (pour le protocole ws).

      • signmethod : Algorithme de signature. Valeurs valides : hmacmd5, hmacsha1, hmacsha256 et sha256. Valeur par défaut : hmacmd5.

      • timestamp : Heure actuelle, en millisecondes. Ce paramètre est facultatif.

      • mqttPassword : Mot de passe. Méthode de calcul : Triez les paramètres soumis au serveur par ordre alphabétique et chiffrez-les selon l'algorithme de signature spécifié. Pour plus d'informations sur l'exemple de calcul de signature, consultez la section Exemples de création de signatures pour les connexions MQTT.

      • content : Chaîne concaténée composée des paramètres soumis au serveur. Ces paramètres incluent productKey, deviceName, timestamp et clientId. Les paramètres sont triés par ordre alphabétique et concaténés sans délimiteur.

        Important

        productKey

        et

        deviceName

        sont obligatoires.

        timestamp

        et

        clientId

        sont facultatifs. Si vous configurez le paramètre

        timestamp

        ou

        clientId

        , la valeur du paramètre doit être identique à celle spécifiée pour le paramètre

        mqttClientId

        .

    Exemple de connexionCet exemple utilise un appareil dans l'instance Enterprise iot-069.

    clientId = 12345, deviceName = device, productKey = pk, timestamp = 789, signmethod=hmacsha1, deviceSecret=secret

    Paramètres de connexion :

    • Utilisation de ws :

      • Endpoint :

        ws://iot-06****9.mqtt.iothub.aliyuncs.com:443
      • Paramètres de connexion :

        mqttclientId=12345|securemode=3,signmethod=hmacsha1,timestamp=789|
        mqttUsername=device&pk
        mqttPassword=hmacsha1("secret","clientId12345deviceNamedeviceproductKeypktimestamp789").toHexString(); 
    • Utilisation de wss :

      • Endpoint :

        wss://iot-06****9.mqtt.iothub.aliyuncs.com:443
      • Paramètres de connexion :

        mqttclientId=12345|securemode=2,signmethod=hmacsha1,timestamp=789|
        mqttUsername=device&pk
        mqttPassword=hmacsha1("secret","clientId12345deviceNamedeviceproductKeypktimestamp789").toHexString();

    Utilisez un SDK côté appareil pour vous connecter à IoT Platform. Pour les intégrations personnalisées, l'exemple de signature de connexion MQTT fournit les détails d'implémentation.

Exemples

Exemple d'authentification et de connexion MQTT-WebSocket