本文介绍如何调用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...