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}