Aggiornamento: maggio 2017
A partire dal Jetty 9.4.0 in poi, il nativo Jetty WebSocketClient supporta proxy tramite il molo HttpClient.
Ciò funziona dichiarando un HttpClient, insieme alle sue configurazioni proxy, e quindi passandolo a the WebSocketClient constructor da utilizzare.
Questo funziona solo con il seguente:
- HTTP/aggiornamento 1.1 per WebSocket
- nativi Jetty websocket API
Questo fa non lavoro con il seguente:
- HTTP/2 (non ci sono specifiche per WebSocket su HTTP/2 come dell'ennesima)
- JSR356 javax.websocket (ci sono idee per API rottura modifiche al JSR356 ClientContainer per consentire il passaggio in un molo HttpClient tramite un costruttore, di farci sapere se questa è valida opzione per voi da filing a new issue on github dirlo)
risposta originale
con molo 9, non c'è alcun supporto proxy per il client nativo Jetty WebSocket, o il client di attuazione JSR-356 (javax.websocket).
Questo supporto è prevista per il Molo 10 (che è rintracciando Servlet 4), e si tradurrà in una rielaborazione completa di tutta la suite libreria client in Jetty di avere uguale supporto per:
- HTTP/1.1
- HTTP/2 (nativo/diretta)
- HTTP/1.1 di aggiornamento per HTTP/2 (H2C)
- HTTP/1.1 aggiornamento a WebSocket
- HTTP/2 websocket canale (attualmente in bozza spec)
- Proxy sostegno
- Supporto cookie
- ecc ...
Le attuali implementazioni client WebSocket sul Molo sono autonomo, a causa dei requisiti di supporto JSR-356.
Il client WebSocket esistente non utilizza il Jetty HttpClient esistente in Jetty 9.x.Se lo facesse allora il supporto proxy potrebbe, forse, sotto una serie molto limitata di scenari, lavorare.
Questa è una richiesta di funzionalità a bassa priorità, in quanto vi sono pochi proxy esistenti là fuori che supportano WebSocket finora (in realtà, hanno generalmente un cattivo supporto per l'aggiornamento HTTP/1.1). Persino il proxy lato server di Jetty attualmente non supporta connessioni aggiornate a HTTP/1.1.
fonte
2015-09-25 15:44:07
un client java di cosa? che tipo di proxy? http/1.1? http/2? websocket su http/1.1? websocket su http/2? trasparente? inverso? lato server? dalla parte del cliente? –
Un client Java WebSocket che utilizza Jetty. Vedi il titolo. Attualmente sto usando HTTP/1.1 ma non vedo come potrebbe influenzare il mio problema. Per ora voglio solo configurare un proxy trasparente. –
Upvoting. Nel suo stato attuale, questa domanda porta risposte preziose. –