websocket 0.12.2

A WebSocket (RFC6455) library for Rust.
extern crate websocket;

use std::thread;
use websocket::{Server, Message, Sender, Receiver};

fn main() {
	let addr = "127.0.0.1:9002".to_string();
	
	let server = Server::bind(&addr[..]).unwrap();
	
	for connection in server {
		thread::spawn(move || {
			let request = connection.unwrap().read_request().unwrap();
			request.validate().unwrap();
			let response = request.accept();
			let (mut sender, mut receiver) = response.send().unwrap().split();
			
			for message in receiver.incoming_messages() {
				let message = match message {
					Ok(message) => message,
					Err(e) => {
						println!("{:?}", e);
						let _ = sender.send_message( Message::Close(None));
						return;
					}
				};
				
				match message {
					Message::Text(data) => sender.send_message(Message::Text(data)).unwrap(),
					Message::Binary(data) => sender.send_message(Message::Binary(data)).unwrap(),
					Message::Close(_) => {
						let _ = sender.send_message( Message::Close(None));
						return;
					}
					Message::Ping(data) => {
						let message = Message::Pong(data);
						sender.send_message(message).unwrap();
					}
					_ => (),
				}
			}
		});
	}
}