akka/akka-http

Add support for proxying HTTPS server connections on the client side... for Web Sockets too

Aperta

#1545 aperta il 22 nov 2017

 (0 commenti) (0 reazioni) (0 assegnatari)Scala (598 fork)batch import
1 - triagedhelp wanted

Metriche repository

Star
 (1311 stelle)
Metriche merge PR
 (Merge medio 1g 10h) (2 PR mergiate in 30 g)

Descrizione

As suggested by the title, this issue is related to #192 and its PRs #917, #921 and #1200.

We are trying to connect to an "external" server through an HTTP(S) Proxy that does not allow any "wss://..." request.

So, the singleWebSocketRequest method may be of some help as soon as its "settings" parameter handles a custom ClientTransport, as explained here, in the doc for singleRequest method...

Unfortunately, singleWebSocketRequest method takes a ClientConnectionSettings "settings" parameter, while singleRequest method takes a ConnectionPoolSettings, and there is no way to tell a ClientConnectionSettings that its ClientTransport should not always be the default ClientTransport.TCP

So we tried...

  • we made ClientConnectionSettings just look like ConnectionPoolSettings regarding its "transport" parameter
  • we made a very little change in the way singleWebSocketRequest method calls for the private _outgoingTlsConnectionLayer method in Http.scala file (through webSocketClientFlow method actually)

and it works like a charm... for us.

So, I worked on a PR I should be able to submit very soon...

The goal here is, apart from sharing a solution, to verify that "it works like a charm", but not only for us ;-)

Guida contributor