Tous les produits
Search
Centre de documentation

IoT Platform:Abonnement côté serveur (MNS)

Dernière mise à jour :Aug 10, 2026

Cette rubrique explique comment configurer un abonnement côté serveur pour transférer les notifications de changement d'état des appareils d'un produit vers une file d'attente Simple Message Queue (formerly MNS) (SMQ). Votre serveur peut ensuite recevoir ces notifications en écoutant la file d'attente MNS.

Prérequis

  • Assurez-vous que les services Alibaba Cloud suivants sont activés :

  • Préparez un environnement de développement. Cet exemple utilise l'environnement de développement Java suivant :

Configurer un abonnement côté serveur

Dans la console IoT Platform, créez un abonnement côté serveur pour MNS et sélectionnez les types de messages auxquels vous souhaitez vous abonner.

  1. Connectez-vous à la console IoT Platform.

  2. Sur la page Overview, localisez l'instance que vous souhaitez gérer et cliquez sur son ID ou son nom.

  3. Dans le volet de navigation de gauche, accédez à Devices > Products. Cliquez ensuite sur Create Product pour créer un produit de détecteur de gaz.

  4. Accédez à Devices > Add Device pour créer un appareil sous le produit de détecteur de gaz.

    Le certificat de l'appareil est requis lors de la configuration du SDK côté appareil.

  5. Dans le volet de navigation de gauche, accédez à Rules Engine > Server-side Subscription. Cliquez ensuite sur Create Subscription pour créer un abonnement côté serveur pour MNS. Pour plus d'informations, consultez la rubrique Utiliser les abonnements côté serveur pour MNS.

    Remarque

    Lorsque vous configurez le transfert de messages vers MNS pour la première fois, vous devez cliquer sur Authorize dans l'invite. Vous serez alors redirigé vers la console RAM pour accorder à IoT Platform l'accès à MNS.

    Dans cet exemple, sélectionnez Device Status Change Notification comme type de message. Cela garantit que toutes les notifications de changement d'état des appareils pour le produit sont transférées vers la file d'attente MNS.

    Une fois l'abonnement créé, IoT Platform crée automatiquement une file d'attente dans MNS pour recevoir les messages. Le nom de la file d'attente suit le format aliyun-iot-${yourProductKey}. Vous devez utiliser ce nom de file d'attente lors de la configuration du SDK MNS pour écouter les messages.

    Dans la liste des abonnements, cliquez sur l'icône située à côté de MNS pour afficher le nom de la file d'attente MNS.

Configurer le SDK MNS côté serveur

Cet exemple utilise la démo du SDK MNS pour Java.

  1. Accédez aux notes de version du SDK MNS pour Java, téléchargez le package d'exemples et décompressez-le.

    Cet exemple utilise le package d'exemples aliyun-sdk-mns-samples-1.1.9.1.zip.

  2. Dans IntelliJ IDEA, importez le dossier aliyun-sdk-mns-samples-1.1.9.1 en tant que projet.

  3. Dans votre répertoire local situé à l'adresse C:\Users\${YourComputerUserName}, créez un fichier properties nommé .aliyun-mns.properties. Dans ce fichier, ajoutez vos identifiants d'authentification MNS au format suivant :

    Remarque

    Le répertoire personnel sous Linux est /home/YOURNAME/. Le répertoire personnel sous Windows est C:\Users\YOURNAME.

    mns.accountendpoint=http://${your_accountId}.mns.${your_regionId}.aliyuncs.com
    mns.accesskeyid=${your_accesskeyid}
    mns.accesskeysecret=${your_accesskeysecret}

    Paramètre

    Description

    accountendpoint

    L'endpoint de votre service MNS. Vous pouvez le trouver dans la console Message Service (MNS). Sélectionnez la région où se trouve votre file d'attente et cliquez sur Details pour la file d'attente.

    accesskeyid

    L'AccessKey ID et l'AccessKey Secret de votre compte Alibaba Cloud.

    Connectez-vous à la console IoT Platform, placez le pointeur sur l'image de profil, puis cliquez sur AccessKey Management pour obtenir l'AccessKey ID et l'AccessKey Secret.

    accesskeysecret

  4. Dans le fichier ComsumerDemo.java, situé dans le répertoire src\main\java\com.aliyun.mns.sample.Queue, spécifiez le nom de la file d'attente Simple Message Queue (formerly MNS) créée automatiquement par IoT Platform.

        public static void main(String[] args) {
            CloudAccount account = new CloudAccount(
                    ServiceSettings.getMNSAccessKeyId(),
                    ServiceSettings.getMNSAccessKeySecret(),
                    ServiceSettings.getMNSAccountEndpoint());
            MNSClient client = account.getMNSClient(); // Initialize the client.
            // Consume messages.
            try{
                CloudQueue queue = client.getQueueRef("aliyun-iot-a1eN7La****");// Replace this with the queue name automatically created by IoT Platform.
                for (int i = 0; i < 10; i++)
                {
                    Message popMsg = queue.popMessage(); // Pop a message from the queue.
                    if (popMsg != null){
                        System.out.println("message handle: " + popMsg.getReceiptHandle());
                        System.out.println("message body: " + popMsg.getMessageBodyAsString()); // Get the raw message body.
                        System.out.println("message id: " + popMsg.getMessageId());
                        System.out.println("message dequeue count:" + popMsg.getDequeueCount());
                        // Add your message processing logic here.
                        // Delete the message from the queue.
                        queue.deleteMessage(popMsg.getReceiptHandle());
                        System.out.println("delete message successfully.\n");
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
  5. Exécutez le fichier ComsumerDemo.java.

Configurer le SDK côté appareil

  1. Accédez à la rubrique Link SDK et sélectionnez SDK for Java.

  2. Télécharger la démo Link SDK for Java et décompressez le package.

    Remarque

    En téléchargeant cette démo, vous acceptez le Contrat de licence logicielle.

  3. Dans IntelliJ IDEA, importez le projet JavaLinkKitDemo.

  4. Dans le fichier device_id, saisissez les informations de certificat de votre appareil.

    {
      "productKey": "xxx",
      "deviceName": "Esensor",
      "productSecret": "",
      "deviceSecret": "1xxx?2"
    }
  5. Dans le fichier MqttSample.java, situé dans le répertoire src\main\java\com.aliyun.alink.devicesdk.demo, définissez le sujet de publication sur le sujet de votre appareil.

    public class MqttSample extends BaseSample {
        final static String TAG = "MqttSample";
        public MqttSample(String pk, String dn) { super(pk, dn); }
        /**
         * An example of the publishing API.
         */
        public void publish() {
            MqttPublishRequest request = new MqttPublishRequest();
            // Specify the topic based on your use case.
            request.topic = "/sys/" + productKey + "/" + deviceName + "/thing/deviceinfo/update";
        }
    }
  6. Dans le fichier HelloWorld.java, situé dans le répertoire src\main\java\com.aliyun.alink.devicesdk.demo, saisissez les informations de connexion de l'appareil.

    Pour obtenir les informations de connexion de l'appareil, consultez la rubrique Afficher et configurer les endpoints d'instance. Le format de channelHost est {productKey}.iot-as-mqtt.{region}.aliyuncs.com:1883. Exemple de code :

    public void init(final DeviceInfoData deviceInfoData) {
        this.pk = deviceInfoData.productKey;
        this.dn = deviceInfoData.deviceName;
        LinkKitInitParams params = new LinkKitInitParams();
        /**
         * Set MQTT initialization parameters.
         */
        IoTMqttClientConfig config = new IoTMqttClientConfig();
        config.productKey = deviceInfoData.productKey;
        config.deviceName = deviceInfoData.deviceName;
        config.deviceSecret = deviceInfoData.deviceSecret;
        config.channelHost = pk + ".iot-as-mqtt." + deviceInfoData.region + ".aliyuncs.com:1883";
        /**
         * Specifies whether to receive offline messages.
         * This corresponds to the cleanSession field in MQTT.
         */
        // ...
    }
  7. Exécutez le fichier HelloWorld.java pour connecter l'appareil.

Vérifier les résultats

Après l'exécution du SDK côté appareil, la notification de mise en ligne de l'appareil est envoyée à la file d'attente Simple Message Queue (formerly MNS) via l'abonnement côté serveur. Le SDK Simple Message Queue (formerly MNS) consomme ensuite le message de la file d'attente et le supprime.

L'exemple ci-dessous montre la sortie lorsque le SDK Simple Message Queue (formerly MNS) reçoit et supprime correctement un message.

message handle: 519xxx...AgMA==
message body:
  {"payload":"eyJsYXN0xxx...IiwiY2xpZW5xxx...","topic":"/as/mqtt/status/xxx/device1","messageid":15xxx,"timestamp":1661158432}
message id: 51xxx...C49
message dequeue count:1
delete message successfully.