Error websocket usage in tokio tungstenite

use tokio_tungstenite::tungstenite::accept;

fn main() {
    let listener = TcpListener::bind("127.0.0.1:7878").unwrap();
    for stream in listener.incoming() {
        let mut stream = stream.unwrap();
        let mut buffer = [0; 2048];
        stream.read(&mut buffer);

        let billionaire = String::from_utf8_lossy(&buffer);
        println!("{}", billionaire);
        if billionaire.contains("Upgrade: websocket") {
            let ws = accept(stream);
            match ws {
                Ok(mut ws) => loop {
                    let msg = ws.read().unwrap().to_string();
                    println!("{}", msg);
                },
                Err(err) => {
                    println!("{}", err);
                }
            }
        } else {
            let msg = format!(
                "HTTP/1.1 200 OK\r\nContent-Length: {}\r\n\r\n{}",
                "tyuikjhgtyu".len(),
                "tyuikjhgtyu"
            );
            stream.write_all(msg.as_bytes());
            stream.flush();
        }
    }
GET / HTTP/1.1
Host: 127.0.0.1:7878
Connection: Upgrade
Pragma: no-cache
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36
Upgrade: websocket
Origin: http://127.0.0.1:5500
Sec-WebSocket-Version: 13
Accept-Encoding: gzip, deflate, br, zstd
Accept-Language: en-US,en;q=0.9,fr;q=0.8
Sec-WebSocket-Key: 8qbTP71+gcvUu+VCR/6c+w==
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
    let b = new WebSocket("ws://127.0.0.1:7878");
    b.onopen = () => {
      console.log("billionaire opened");
      b.send("billionairegreathari");
    };
    b.onclose = () => {
      console.log("closing");
    };
WebSocket protocol error: Handshake not finished

not receving body