-
Notifications
You must be signed in to change notification settings - Fork 90
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
Interceptor Proxy Support for Websockets #654
Comments
If this is not crazy, I may have time to work on it later this year. |
@axisofentropy did you try to enable http2 on the interceptor? |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 7 days if no further activity occurs. Thank you for your contributions. |
I have the same issue when trying to run Jupyter Notebooks using Voila. All the ipywidgets use wss. Since I can't change the auto transformation in Voila I can't use the http-add-on/interceptor. I also get a 403. |
#835 should fix the issue. At least work for me with openvscode-server. |
I'd like this
http-add-on
Interceptor Proxy to also support WebSocket connections.Use-Case
Currently WebSocket connections are not supported through the Interceptor proxy. Per this discussion, HTTP requests with
upgrade
headers receiveHTTP 403
responses: #618I hope we can add logic to the Interceptor proxy to identify HTTP requests with these WebSocket headers and hand them off to a different HTTP handler.
Specification
I found an MIT-licensed library that produces an
http.Handler
object capable of proxying WebSocket connections. https://github.com/koding/websocketproxy/blob/master/websocketproxy.goI imagine that when an incoming HTTP request tries to upgrade to a WebSocket connection, the Interceptor's existing
Handler
can hand it off to anotherHandler
created using this library, which can support a proxied WebSocket connection.While I'm familiar with the relevant networking protocols, I'm not very familiar with golang and its
net.http
library. Could this work? CanHandler
objects be "chained"? Is this the right integration point?Alternatively, could we add some pieces of that library to the existing proxy handler to support WebSockets?
The text was updated successfully, but these errors were encountered: