全部產品
Search
文件中心

IoT Platform:Paho-MQTT Rust接入樣本

更新時間:Jun 30, 2024

本文介紹如何調用Rust語言的Paho MQTT類庫,將裝置接入阿里雲物聯網平台並進行訊息收發。

使用前必讀

本文操作步驟以普通使用者權限為例。如果您在操作過程中涉及到管理員權限才能執行的操作,可嘗試使用sudo命令執行。

前提條件

已在物聯網平台控制台,對應執行個體下,建立產品和裝置,並擷取MQTT接入網域名稱和裝置認證資訊(ProductKey、DeviceName和DeviceSecret)。具體操作,請參見:

準備開發環境

  • Ubuntu 18.04版本。

  • 推薦使用Cargo 1.61.0及以上版本。

  • Linux系統可通過如下命令安裝依賴關係。

    sudo apt-get install cargo cmake

接入物聯網平台

  1. 單擊下載範例程式碼包,並解壓縮為檔案aiot-rust-demo,其中包含以下檔案:

    檔案

    說明

    src/mqtt-basic-demo/main.rs

    該檔案包含裝置與物聯網平台串連和通訊的邏輯代碼。

    Cargo.toml

    工程描述檔案。

  2. 在檔案src/mqtt-basic-demo/main.rs中,將product_keydevice_namedevice_secret替換為您的裝置認證資訊。

    let product_key = "gb80*****";
    let device_name = "mqtt_******o";
    let timestamp = "2524****000";
    let device_secret = b"f***********************b";
    let host = "tcp://iot-060axxxx.mqtt.iothub.aliyuncs.com:1883"
  3. 使用命令cargo build編譯工程,運行結果如下所示。

       Compiling hex-literal v0.3.4
       Compiling hmac-sha256 v0.1.7
       Compiling openssl-src v111.24.0+1.1.1s
       Compiling cmake v0.1.49
       Compiling slab v0.4.7
       Compiling openssl-sys v0.9.80
       Compiling paho-mqtt-sys v0.8.0 (https://github.com/eclipse/paho.mqtt.rust.git?branch=master#8e1f7342)
       Compiling concurrent-queue v2.1.0
       Compiling crossbeam-channel v0.5.6
       Compiling async-channel v1.8.0
       Compiling futures-macro v0.3.25
       Compiling thiserror-impl v1.0.38
       Compiling futures-executor v0.3.25
       Compiling futures v0.3.25
       Compiling paho-mqtt v0.12.0 (https://github.com/eclipse/paho.mqtt.rust.git?branch=master#8e1f7342)
       Compiling mqtt-example v0.1.0 
        Finished dev [unoptimized + debuginfo] target(s) in 20.83s
  4. 使用命令./target/debug/mqtt_basic_demo運行工程,運行結果如下所示。

    starting Alibaba iot demo...
    subscribed to topic:=/gb80sxxxx/mqtt_basic_demo/user/get
    published to topic:=/gb80sxxxx/mqtt_basic_demo/user/update
    start receiving...