use std::net::TcpListener; use std::thread; use tungstenite::accept; use crate::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 string = input.to_text().unwrap_or("unit"); let mul_string = pattern::format_multiline(string); match mul_string.iter().cloned().map(pattern::parse_line).collect() { Ok(patterns) => { *pattern = patterns; let text = format!("Ok!\n\n{}", string); let msg = tungstenite::Message::from(text); websocket.write_message(msg).unwrap(); } Err(err) => { println!("ret err {:?}", err); let msg = tungstenite::Message::from(err.to_string()); websocket.write_message(msg).unwrap(); } } } else { let msg = tungstenite::Message::from("Not text"); websocket.write_message(msg).unwrap(); } } }); } }