Add CLI args for broker address and port

This commit is contained in:
Ollo
2026-02-27 19:01:06 +01:00
parent 1771b8b0e2
commit 555c1d76c0
3 changed files with 22 additions and 3 deletions

View File

@@ -8,3 +8,4 @@ tokio = { version = "1", features = ["full"] }
rumqttc = "0.24"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
clap = { version = "4", features = ["derive"] }

View File

@@ -12,9 +12,14 @@ A simple Rust application that publishes messages to an MQTT broker.
## Usage
```bash
cargo run
cargo run -- --broker 192.168.1.100 --port 1883
```
### Arguments
- `broker`: MQTT broker address (default: `localhost`)
- `port`: MQTT broker port (default: `1883`)
## Configuration
Edit `src/main.rs` to customize:

View File

@@ -1,13 +1,26 @@
use clap::Parser;
use rumqttc::{AsyncClient, Event, MqttOptions, Packet, QoS};
use std::time::Duration;
use tokio::time::sleep;
#[derive(Parser, Debug)]
#[command(version, about, long_about = None)]
struct Args {
#[arg(default_value = "localhost")]
broker: String,
#[arg(default_value_t = 1883)]
port: u16,
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let args = Args::parse();
let mut mqttoptions = MqttOptions::new(
"mqtt-publisher",
"localhost",
1883,
args.broker,
args.port,
);
mqttoptions.set_keep_alive(Duration::from_secs(30));