extern crate env_logger;
/// Simple WebSocket client with error handling. It is not necessary to setup logging, but doing
/// so will allow you to see more details about the connection by using the RUST_LOG env variable.
extern crate solana_ws as ws;
use ws::{connect, CloseCode};
fn main() {
// Setup logging
env_logger::init();
// Connect to the url and call the closure
if let Err(error) = connect("ws://127.0.0.1:3012", |out| {
// Queue a message to be sent when the WebSocket is open
if out.send("Hello WebSocket").is_err() {
println!("Websocket couldn't queue an initial message.")
} else {
println!("Client sent message 'Hello WebSocket'. ")
}
// The handler needs to take ownership of out, so we use move
move |msg| {
// Handle messages received on this connection
println!("Client got message '{}'. ", msg);
// Close the connection
out.close(CloseCode::Normal)
}
}) {
// Inform the user of failure
println!("Failed to create WebSocket due to: {:?}", error);
}
}