Update: Mai 2017
Ab Jetty 9.4.0 und ab, die native Jetty WebSocketClient unterstützt Proxies über die Anlegestelle Httpclient.
Dies funktioniert, indem ein HttpClient zusammen mit seinen Proxy-Konfigurationen deklariert und dann an the WebSocketClient constructor übergeben wird.
Dies funktioniert nur mit den folgenden:
- HTTP/1.1 Upgrade auf WebSocket
- india Jetty WebSocket APIs
Dies gilt nicht Arbeit mit den folgenden:
- HTTP/2 (es gibt keine Spezifikation für WebSocket über HTTP/2 als von noch)
- JSR356 javax.websocket (es gibt Ideen für API-Änderungen an den JSR356 ClientContainer brechen zu ermöglichen in einer Anlegestelle vorbei Httpclient über einen Konstruktor, lassen Sie uns wissen, ob dies ist praktikable Option für Sie von filing a new issue on github sagen so)
Original-Antwort
mit Steg 9, gibt es keine Proxy-Unterstützung für entweder die Jetty india WebSocket-Client oder die JSR-356 (javax.websocket) Client-Implementierung.
Diese Unterstützung für Landungssteg 10 vorgesehen (die 4 Servlet-Tracking ist) und in einer kompletten Überarbeitung der gesamten Client-Bibliothek Suite in Anlegestelle führt für gleiche Unterstützung hat:
- HTTP/1.1
- HTTP/2 (native/direkt)
- HTTP/1.1 Upgrade auf HTTP/2 (h2c)
- HTTP/1.1 Upgrade auf WebSocket
- HTTP/2 websocket Kanal (derzeit im Entwurfsdaten)
- Proxy-Unterstützung
- Cookie-Unterstützung
- etc ...
Die bestehenden WebSocket-Client-Implementierungen auf Jetty sind eigenständige, aufgrund der JSR-356-Support-Anforderungen.
Der vorhandene WebSocket-Client nutzt den vorhandenen Jetty HttpClient in Jetty 9.x nicht.Wenn dies der Fall wäre, könnte die Proxy-Unterstützung möglicherweise unter einer sehr begrenzten Anzahl von Szenarien funktionieren.
Dies ist eine Featureanforderung mit niedriger Priorität, da es nur wenige vorhandene Proxies gibt, die WebSocket bisher unterstützen (tatsächlich haben sie generell eine schlechte Unterstützung für das HTTP/1.1-Upgrade). Selbst Jettys eigener Serverseite-Proxy unterstützt derzeit keine HTTP/1.1-aufgerüsteten Verbindungen.
ein Java-Client von was? Welche Art von Proxy? http/1.1? http/2? Websocket über http/1.1? Websocket über http/2? transparent? umkehren? Serverseite? Kundenseite? –
Ein WebSocket-Java-Client mit Jetty. Siehe Titel. Derzeit verwende ich HTTP/1.1, aber ich sehe nicht, wie es mein Problem beeinflussen würde. Für den Moment möchte ich nur einen transparenten Proxy einrichten. –
Upvoting. In ihrem aktuellen Zustand bringt diese Frage wertvolle Antworten. –