Not returning value of socket

use std::io::{Read, Write};
use std::net::{TcpListener, TcpStream};
use std::thread;

use tokio_tungstenite::tungstenite::accept;

fn handle_client(mut stream: TcpStream) -> std::io::Result<()> {
    // Buffer for reading the initial HTTP request
    let mut buffer = [0; 1024];
    let bytes_read = stream.read(&mut buffer)?;

    // Parse the request
    let request = String::from_utf8_lossy(&buffer[..bytes_read]);

    println!("{}", request);
    // Decide how to handle the request
    if request.contains("Upgrade: websocket") && request.contains("/ws") {
        // WebSocket handshake
        let mut billionaire = accept(stream).unwrap();
        let b = billionaire.read().unwrap();
        println!("{}", b.into_text().unwrap());
        billionaire.send("billionairegreathari".into());
    } else if request.starts_with("GET /api/hello") {
        // REST response
        let response = "HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{\"message\":\"Hello from REST!\"}";
        stream.write_all(response.as_bytes())?;
        stream.flush()?;
    } else {
        // 404 for unknown paths
        let response = "HTTP/1.1 404 Not Found\r\n\r\n";
        stream.write_all(response.as_bytes())?;
        stream.flush()?;
    }

    Ok(())
}

fn main() -> std::io::Result<()> {
    let listener = TcpListener::bind("127.0.0.1:7878")?;
    println!("Server running on 127.0.0.1:8080");

    for stream in listener.incoming() {
        match stream {
            Ok(stream) => {
                thread::spawn(|| {
                    if let Err(e) = handle_client(stream) {
                        eprintln!("Error handling client: {}", e);
                    }
                });
            }
            Err(e) => eprintln!("Connection failed: {}", e),
        }
    }
    Ok(())
}

GET /ws 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: 1/HweSLvG0GyXBG5tAAaMQ==
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
    let billionaire = new WebSocket("ws://127.0.0.1:7878/ws");
    billionaire.onopen = () => {
      console.log("opening");
      billionaire.send("billionairegreathari");
    };
    billionaire.onmessage = (e) => {
      console.log(e);
    };