simple-websockets

An easy-to-use WebSocket server.

MIT licensed Docs Crates.io

Example

Echo server:

```rust use simple_websockets::{Event, Responder}; use std::collections::HashMap;

fn main() { // listen for WebSockets on port 8080: let eventhub = simplewebsockets::launch(8080) .expect("failed to listen on port 8080"); // map between client ids and the client's Responder: let mut clients: HashMap = HashMap::new();

loop {
    match event_hub.poll_event() {
        Event::Connect(client_id, responder) => {
            println!("A client connected with id #{}", client_id);
            // add their Responder to our `clients` map:
            clients.insert(client_id, responder);
        },
        Event::Disconnect(client_id) => {
            println!("Client #{} disconnected.", client_id);
            // remove the disconnected client from the clients map:
            clients.remove(&client_id);
        },
        Event::Message(client_id, message) => {
            println!("Received a message from client #{}: {:?}", client_id, message);
            // retrieve this client's `Responder`:
            let responder = clients.get(&client_id).unwrap();
            // echo the message back:
            responder.send(message);
        },
    }
}

} ```