example/
example.rs

1use std::{
2    io::{Read, Write},
3    net::TcpStream,
4};
5
6use tinymqtt::MqttClient;
7
8fn main() {
9    let mut client: MqttClient<1024> = MqttClient::new();
10
11    let mut stream = TcpStream::connect(std::env::var("TINYMQTT_HOST").unwrap()).unwrap();
12    stream
13        .write_all(client.connect("12345", None).unwrap())
14        .unwrap();
15    stream.flush().unwrap();
16
17    let mut rx_bytes = [0; 1024];
18    let len = stream.read(&mut rx_bytes).unwrap();
19    client
20        .receive_packet(&rx_bytes[..len], |client, topic, data| {
21            println!("Received: {:?} {:?}", topic, std::str::from_utf8(data));
22        })
23        .unwrap();
24
25    stream
26        .write_all(client.publish("gots/test", b"test").unwrap())
27        .unwrap();
28
29    stream
30        .write_all(client.subscribe("zigbee2mqtt/Power Plug 3").unwrap())
31        .unwrap();
32
33    loop {
34        let len = stream.read(&mut rx_bytes).unwrap();
35        client
36            .receive_packet(&rx_bytes[..len], |client, topic, data| {
37                println!("Received: {:?} {:?}", topic, std::str::from_utf8(data));
38            })
39            .unwrap();
40    }
41}