extern crate env_logger;
extern crate futures;
extern crate rmp_rpc;
extern crate tokio;
use std::net::SocketAddr;
use futures::Future;
use rmp_rpc::Client;
use tokio::net::TcpStream;
fn main() {
env_logger::init();
let addr: SocketAddr = "127.0.0.1:54321".parse().unwrap();
let client = TcpStream::connect(&addr)
.or_else(|e| {
println!("I/O error in the client: {}", e);
Err(())
})
.and_then(move |stream| {
let client = Client::new(stream);
client.notify("hello", &[]);
client
.request("dostuff", &["foo".into(), 42.into()])
.and_then(|response| {
println!("Response: {:?}", response);
Ok(())
})
});
tokio::run(client.then(|result| {
match result {
Ok(_) => println!("Client finished successfully"),
Err(_) => println!("Client failed"),
}
result
}));
}