mosquitto-client-wrapper 0.2.0

Rust interface to the Mosquitto MQTT broker client. This is a fork of https://github.com/jsloth/mosquitto-client.
extern crate mosquitto_client_wrapper as mosq;
use mosq::{Mosquitto, Result};
use std::{thread, time};

fn main() -> Result<()> {
    let m = Mosquitto::new("test")?;
    
    m.connect("localhost",1883,5).expect("can't connect");
    m.subscribe("bilbo/#",1).expect("can't subscribe to bonzo");
    
    let mt = m.clone();
    thread::spawn(move || {
        let timeout = time::Duration::from_millis(500);
        for _ in 0..5 {
            mt.publish("bilbo/baggins","hello dolly".as_bytes(), 1, false).unwrap();
            thread::sleep(timeout);
        }
        mt.disconnect().unwrap();
    });
    
    let mut mc = m.callbacks(0);
    mc.on_message(|data,msg| {
        println!("bilbo {:?}",msg);
        *data += 1;
    });
    mc.on_disconnect(|_,rc| println!("disconnect {}",rc));
    
    
    m.loop_until_disconnect(200).expect("broken loop");
    println!("received {} messages",mc.data);
    Ok(())
}