#mqtt #connection #manager #manage #publish #subscribe #rumqttc

mqtt-manager

一个用于在Rust中管理MQTT连接的库。基于rumqttc。

2个稳定版本

1.0.1 2024年4月23日

#7 in #subscribe

MIT/Apache

10KB
97 代码行

mqtt-manager - 一个用于在Rust中管理MQTT连接的库。基于rumqttc。

Crates.io Docs.rs MIT licensed

变更日志

1.0.0 - 初始版本


lib.rs:

管理MQTT连接的便利类

示例

use mqtt_manager::*;
use std::time::Duration;

async fn handle_msg_a(pubdata: Publish) {
    println!("Received msg A: {:?}", pubdata.payload);
}

async fn handle_msg_b(pubdata: Publish) {
    println!("Received msg A: {:?}", pubdata.payload);
}

#[tokio::main]
async fn main() {
    let mut mgr = MqttManager::new("mqtt://127.0.0.1:1883/override_client_id");
    mgr.subscribe("msg/a", 0, make_callback!(handle_msg_a)).await;
    mgr.subscribe("msg/b", 0, make_callback!(handle_msg_b)).await;
    mgr.publish("msg/a", "test", 0).await;
    loop {
        tokio::select! {
            _ = mgr.process() => (),
            _ = tokio::signal::ctrl_c() => {
                mgr.disconnect().await;
                break;
            }
        }
    }
}

依赖项

~5–14MB
~187K SLoC