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);
})
});