proxy.py icon indicating copy to clipboard operation
proxy.py copied to clipboard

Reverse proxy plugin to support WebSockets

Open thatsheepishcoder opened this issue 3 years ago • 2 comments

Is your feature request related to a problem? Please describe.

Currently, the reverse proxy plugin setup doesn't support proxying over websocket connections. This means proxy.py is unsuitable for applications that require websocket and http functionality (for example, JupyterLab).

Describe the solution you'd like

Inbuilt support for websocket connections through the reverse-proxy plugin.

Additional context

The current implementation will result in websocket connections being handled by the web server plugin, rather than passing the connection through to the Reverse Proxy plugin. If you spin up a reverse-proxy plugin and then attempt to pass a websocket connection, you will see mentions of the webserver handling the connection in the proxy.py logging.

Initially, it looks like it needs to be added as a valid route in ReverseProxy class (proxy.http.server.reverse, line 53-54), however the class also does not have implemented functionality for websocket upstream passing.

thatsheepishcoder avatar Sep 23 '22 01:09 thatsheepishcoder

@thatsheepishcoder Thanks for raising this. I have been trying to pull in full proxy-server style support within reverse-proxy chain. This will likely land in the next release.

abhinavsingh avatar Sep 23 '22 18:09 abhinavsingh

Just checking in on this actually, ran into the same limitation?

nicknotfun avatar Oct 13 '22 13:10 nicknotfun