How to use the map function on Warp

Hello,

How could I include in the warp map method to work:

    let key = var("KEY").unwrap();
    let secret = var("SECRET").unwrap();

    println!("key: {}", key);
    println!("secret: {}", secret);
 
    let socket = Socket::new(AF_INET, SOCK_DGRAM, 0).unwrap();
    socket.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1).unwrap();


    let (mut socket, response) =
        connect(Url::parse("wss://www.test.com/ws").unwrap()).expect("Can't connect");


    // GET /chat -> websocket upgrade
    let chat = warp::path("ws")
        // The `ws()` filter will prepare Websocket handshake...
        .and(warp::ws())
        .and(warp::any().map(move || users.clone()))

// THIS IS WHAT I WOULD LIKE TO INCLUDE BUT IT IS NOT WORKING
      //  .and(warp::any().map(move || &socket))
// THIS IS WHAT I WOULD LIKE TO INCLUDE BUT IT IS NOT WORKING
        .map(move |ws: warp::ws::Ws, users| {
            // This will call our function if the handshake succeeds.
            ws.on_upgrade(move |socket| {                
                return user_connected(socket, users);
            })
        });

// THIS IS WHAT I WOULD LIKE TO DO
    // GET /chat -> websocket upgrade
    let chat = warp::path("ws")
        // The `ws()` filter will prepare Websocket handshake...
        .and(warp::ws())
        .and(warp::any().map(move || users.clone()))
        .and(warp::any().map(move || &socket))
        .map(move |ws: warp::ws::Ws, users, socket2| {
            // This will call our function if the handshake succeeds.
            ws.on_upgrade(move |socket| {                
                return user_connected(socket, users, socket2);
            })
        });

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.