diff options
Diffstat (limited to 'crates/common/mqtt_client/examples/publish_test.rs')
-rw-r--r-- | crates/common/mqtt_client/examples/publish_test.rs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/crates/common/mqtt_client/examples/publish_test.rs b/crates/common/mqtt_client/examples/publish_test.rs new file mode 100644 index 00000000..f23b4cd8 --- /dev/null +++ b/crates/common/mqtt_client/examples/publish_test.rs @@ -0,0 +1,29 @@ +use mqtt_client::{Config, Message, MqttClient, MqttClientError, QoS, Topic}; + +async fn publish( + config: &Config, + qos: QoS, + payload: impl Into<String>, +) -> Result<(), MqttClientError> { + let topic = Topic::new("test/uubpb9wyi9asi46l624f")?; + let client = config.connect("publisher").await?; + let message = Message::new(&topic, payload.into()).qos(qos); + + let () = client.publish(message).await?; + client.disconnect().await?; + Ok(()) +} + +#[tokio::main] +pub async fn main() -> Result<(), Box<dyn std::error::Error>> { + let config = Config::new("test.mosquitto.org", 1883); + let payload = "Hello there!"; + + env_logger::init(); + + publish(&config, QoS::AtMostOnce, payload).await?; + publish(&config, QoS::AtLeastOnce, payload).await?; + publish(&config, QoS::ExactlyOnce, payload).await?; + + Ok(()) +} |