akka/akka-http

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

Ouverte

#1 545 ouverte le 22 nov. 2017

 (0 commentaire) (0 réaction) (0 personne assignée)Scala (598 forks)batch import
1 - triagedhelp wanted

Métriques du dépôt

Stars
 (1 311 étoiles)
Métriques de merge PR
 (Merge moyen 1j 10h) (2 PRs mergées en 30 j)

Description

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 ;-)

Guide contributeur