use std::net::TcpListener; use std::thread; use tungstenite::accept; use util::pattern::*; pub fn websocket(pattern: &mut Vec>) { let server = TcpListener::bind("0.0.0.0:29999").unwrap(); for stream in server.incoming() { thread::spawn (move || { let mut websocket = accept(stream.unwrap()).unwrap(); loop { let input = websocket.read_message().unwrap(); if input.is_text() { let mul_string = input.to_text().unwrap_or("unit"); match mul_string.iter().cloned().map(parse_line).collect() { Ok(patterns) => { pattern = patterns; let text = format!("Ok!\n\n{}", mul_string); let msg = tungstenite::Message::from(text); websocket.write_message(msg).unwrap(); } Err(err) => { println!("ret err {:?}", err); let msg = tungstenite::Message::from(err); websocket.write_message(msg).unwrap(); } } } else { let msg = tungstenite::Message::from("Not text"); websocket.write_message(msg).unwrap(); } } }); } }