17 个版本 (10 个重大更新)
0.11.2 | 2024年5月8日 |
---|---|
0.11.1 | 2024年1月14日 |
0.10.0 | 2024年1月6日 |
0.7.0 | 2023年12月27日 |
0.4.0 | 2021年1月3日 |
1396 在 网络编程
每月79次 下载
2.5MB
64K SLoC
异步 MQTT 客户端
此包实现了一个使用 libmosquitto 的异步 MQTT 客户端。
use mosquitto_rs::*;
fn main() -> Result<(), Error> {
smol::block_on(async {
let mut mosq = Client::with_auto_id()?;
let rc = mosq.connect("localhost", 1883, std::time::Duration::from_secs(5), None).await?;
println!("connect: {}", rc);
let subscriptions = mosq.subscriber().unwrap();
mosq.subscribe("test", QoS::AtMostOnce).await?;
println!("subscribed");
mosq.publish("test", b"woot", QoS::AtMostOnce, false)
.await?;
println!("published");
if let Ok(msg) = subscriptions.recv().await {
println!("msg: {:?}", msg);
}
Ok(())
})
}
lib.rs
:
此包实现了一个使用 libmosquitto 的异步 MQTT 客户端。
use mosquitto_rs::*;
fn main() -> Result<(), Error> {
smol::block_on(async {
let mut client = Client::with_auto_id()?;
let rc = client.connect(
"localhost", 1883,
std::time::Duration::from_secs(5), None).await?;
println!("connect: {}", rc);
let subscriptions = client.subscriber().unwrap();
client.subscribe("test", QoS::AtMostOnce).await?;
println!("subscribed");
client.publish("test", b"woot", QoS::AtMostOnce, false)
.await?;
println!("published");
if let Ok(msg) = subscriptions.recv().await {
println!("msg: {:?}", msg);
}
Ok(())
})
}
功能
以下功能标志可用
router
- 包含路由模块和MqttRouter
类型。默认启用。vendored-mosquitto
- 使用打包的 libmosquitto 2.4 库。默认启用。vendored-mosquitto-tls
- 在打包的 libmosquitto 中启用 TLS 支持。默认启用。vendored-openssl
- 从源代码构建 openssl,而不是使用系统库。推荐 macOS 和 Windows 用户启用此功能。