本文介紹如何調用Rust語言的Paho MQTT類庫,將裝置接入阿里雲物聯網平台並進行訊息收發。
使用前必讀
本文操作步驟以普通使用者權限為例。如果您在操作過程中涉及到管理員權限才能執行的操作,可嘗試使用sudo
命令執行。
前提條件
已在物聯網平台控制台,對應執行個體下,建立產品和裝置,並擷取MQTT接入網域名稱和裝置認證資訊(ProductKey、DeviceName和DeviceSecret)。具體操作,請參見:
準備開發環境
Ubuntu 18.04版本。
推薦使用Cargo 1.61.0及以上版本。
Linux系統可通過如下命令安裝依賴關係。
sudo apt-get install cargo cmake
接入物聯網平台
單擊下載範例程式碼包,並解壓縮為檔案
aiot-rust-demo
,其中包含以下檔案:檔案
說明
src/mqtt-basic-demo/main.rs
該檔案包含裝置與物聯網平台串連和通訊的邏輯代碼。
Cargo.toml
工程描述檔案。
在檔案
src/mqtt-basic-demo/main.rs
中,將product_key
、device_name
和device_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"
使用命令
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
使用命令
./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...