1 use std::{net::TcpListener, thread::spawn};
2 
3 use tungstenite::{
4     accept_hdr,
5     handshake::server::{Request, Response},
6     http::StatusCode,
7 };
8 
main()9 fn main() {
10     let server = TcpListener::bind("127.0.0.1:3012").unwrap();
11     for stream in server.incoming() {
12         spawn(move || {
13             let callback = |_req: &Request, _resp| {
14                 let resp = Response::builder()
15                     .status(StatusCode::FORBIDDEN)
16                     .body(Some("Access denied".into()))
17                     .unwrap();
18                 Err(resp)
19             };
20             accept_hdr(stream.unwrap(), callback).unwrap_err();
21         });
22     }
23 }
24