This example shows a websocket client: https://github.com/sdroege/async-tungstenite/blob/main/examples/client.rs
Which notes:
//! Note that this is not currently optimized for performance, especially around
//! buffer management. Rather it's intended to show an example of working with a
//! client.
Does it mean that this example should not be used in production?
What is meant by buffer management? Is it essential?