-
Notifications
You must be signed in to change notification settings - Fork 3.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FEATURE] Allow specifying an http.Client for initiating the websocket request #959
Comments
@BinaryFissionGames I'm working on this issue and needed a clarification. So what you want basically is to transfer all the settings that additonal parameter http.Client brings (transport, timeout, JAR) to the upgraded connection? |
What I would like is the initial http request that establishes the persistent connection to be made with the http.Client (I think just using the settings from it is equivalent). |
+1 would like to see support for this, as it also allows reusing a keep-alive connection, for example making an HTTP and a WebSocket connection over a single proxy connection |
It's possible that some sever and proxy implementations allow reuse of a connection, but it's not something that's allowed by RFC 6455. |
I haven't seen anything in the RFC that states a that a proxy connection may not be open and used prior to the socket request... |
According to Section 4.1 in the RFC, opening a network connection is the first step in establishing a WebSocket connection. This implies that network connection was not used prior to establishing the WebSocket connection. |
Is there an existing feature request for this?
Is your feature request related to a problem? Please describe.
We are using gorilla/websocket in our library ((opamp-go)[https://github.com/open-telemetry/opamp-go]) for the implementation of the websocket transport. opamp-go can use either http or websocket transport.
A problem we've kept running into is that for the http transport, we can simply specify the http.Client and allow those connection settings to be used. However, for websockets, we can't use a specified http.Client, so we end up having to implement our own interface instead of just using the standard http.Client one.
Since websockets are implemented over http, I think it would make sense for us to be able to specify an http.Client to be used.
Describe the solution that you would like.
It would be nice if there was a way to pass an http.Client into the dialer, or maybe even have a separate dial function for it. This would make it possible to specify things like
CheckRedirect
and ahttp.RoundTripper
that can allow for more standardized handling of the initial http connection.Describe alternatives you have considered.
No response
Anything else?
No response
The text was updated successfully, but these errors were encountered: