Comments (6)
Indeed, thanks! Would you be interested to send a PR to untangle that?
There could be separate functions per TLS backend, and the functions that are not TLS-backend specific could select one of them if multiple are enabled.
from async-tungstenite.
Facing similar issue with rustls & native-tls:
// this enables tokio-native-tls feature
#[cfg(feature = "use-native-tls")]
let connector = tls::native_tls_connector(&tls_config).await?;
// enables tokio-rustls-native-certs & tokio-rustls-webpki-roots
#[cfg(feature = "use-rustls")]
let connector = tls::rustls_connector(&tls_config).await?;
// if both features are enabled together, it will generate error:
// expected `tokio_native_tls::TlsConnector`, found `tokio_rustls::TlsConnector`
// ideally, there should be way to choose the connector
// even when multiple features are enabled!
let (socket, response) = async_tungstenite::tokio::client_async_tls_with_connector(
request,
tcp_stream,
Some(connector),
)
.await?;
There could be separate functions per TLS backend, and the functions that are not TLS-backend specific could select one of them if multiple are enabled.
we would need to export those backend specific fns as well ( otherwise, the issue of some feature taking precedence will still be there ). Instead of that, can we export the tls modules?
This way I can choose which fns I want to use manuall like:
async_tungstenite::tokio::tokio_native_tls::client_async_tls_with_connector(..)
// or
async_tungstenite::tokio::tokio_rustls::client_async_tls_with_connector(..)
// for existing behaviour
async_tungstenite::tokio::client_async_tls_with_connector(..)
ps: I hope I am correct saying this two issue are same haha, Thank you :)
from async-tungstenite.
any updates @sdroege ?
from async-tungstenite.
Not really, didn't have time to look into this yet in detail. If someone has the time to untangle it and propose a solution that would be great!
from async-tungstenite.
Not really, didn't have time to look into this yet in detail. If someone has the time to untangle it and propose a solution that would be great!
I suggest earlier that, can we export the tls modules?
This way I can choose which fns I want to use manually like:
async_tungstenite::tokio::tokio_native_tls::client_async_tls_with_connector(..)
// or
async_tungstenite::tokio::tokio_rustls::client_async_tls_with_connector(..)
// for existing behaviour
async_tungstenite::tokio::client_async_tls_with_connector(..)
So more like having more control by importing than just relying in feature flags, wdyt? This would also help in keeping existing behaviour intact, so won't be a breaking change!
from async-tungstenite.
I like the idea
from async-tungstenite.
Related Issues (20)
- Inspecting the steam buffer HOT 3
- "thread 'async-std/runtime' panicked" when running "echo-server" example HOT 1
- Support fragmented messages HOT 3
- How to close connection gracefully after WebSocketStream.split()? HOT 2
- [Question]: How to optimise the memory usage for websocket client HOT 5
- could not find `async_std` in `async_tungstenite` HOT 6
- Support for the `smol` runtime HOT 1
- Add vendored feature for dependency crates so that statically linked OpenSSL can be used HOT 1
- ResetWithoutClosingHandshake when server sends more frequent messages. HOT 1
- Can't find `tungstenite::client::IntoClientRequest` HOT 5
- how to close websocket after it has been moved into select? HOT 12
- [Question] How to add headers to connection? HOT 3
- max connect just 50 onely HOT 2
- How to add TLS support to a websocket server for wss to work? HOT 2
- Disable certificate validation HOT 2
- How to disable logging for compact? HOT 5
- Avoid webpki-roots as a default dependency when tokio-rustls is used HOT 5
- Is it possible to flush all buffered messages before closing the stream? HOT 5
- Cloning `WebSocketStream`s HOT 1
- Initial report: stack overflow on windows with 0.15 HOT 11
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from async-tungstenite.