Desidero ottenere socket del server funzionanti per HTTP/2 in Java, preferibilmente TLS/https.Socket Java HTTP/2 server
Ho un socket del server TLS funzionante, ma i browser parleranno solo di HTTP/1.1. Se ho capito bene, hai bisogno di ALPN per ottenere un browser HTTP/2 per connetterti al tuo socket TLS e avviare l'esecuzione di HTTP/2 su di esso; i browser non chiederanno l'aggiornamento a HTTP/2 su https. Sembra che Java8 non faccia ALPN finora. Forse c'è un altro modo per costringere i browser a fare HTTP/2, almeno non TLS.
Quindi, qualcuno sa come creare un socket Java server per HTTP/2?
Perché non dai un'occhiata a implementazioni esistenti come Jetty, Netty e Undertow? Vedi [implementazioni http2] (https://github.com/http2/http2-spec/wiki/Implementations) –
@DonghwanKim Sì, ne ho esaminato due. ISTR che uno di loro aggiunge ALPN ai socket SSL Java tramite un 'SSLExtension', IIRC. Questo potrebbe essere un modo per ottenere ALPN per Java, e quindi essere in grado di connettersi al browser con 'h2' HTTP/2. Potrebbe essere troppo lavoro, non lo so. Potrei semplicemente aspettare e sperare che Java ottenga finalmente ALPN in qualche aggiornamento. –
Java non otterrà ALPN almeno fino a JDK 9, che è previsto per la fine del 2016 o 2017. Nel frattempo, è possibile utilizzare [Jetty] (http://Plipse.org/Jetty) 's [implementazione ALPN] (http: //www.eclipse.org/jetty/documentation/current/alpn-chapter.html), o meglio ancora, usa direttamente Jetty (o altri server come suggerito) piuttosto che fare la tua implementazione HTTP/2 usando ServerSocket. – sbordet