-
Notifications
You must be signed in to change notification settings - Fork 222
/
client.rs
33 lines (28 loc) · 1.1 KB
/
client.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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 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);
}
}