Ich möchte für HTTP/2 in Java, vorzugsweise TLS/https Arbeits Server-Sockets erhalten.Java HTTP/2 Server Sockel
Ich habe einen TLS-Server-Socket funktioniert gut bekommen, aber Browser wird nur HTTP sprechen/1.1 zu. Wenn ich das richtig verstanden habe, brauchen Sie ALPN, um einen HTTP/2-Browser für die Verbindung zu Ihrem TLS-Socket zu bekommen und damit HTTP/2 zu starten; Browser werden auf HTTPS nicht nach einem Upgrade auf HTTP/2 fragen. Es scheint, dass Java8 ALPN bisher nicht tut. Vielleicht gibt es eine andere Möglichkeit Browser zu zwingen HTTP/2 zu tun, zumindest nicht TLS.
Also, Weiß jemand, wie einen Java-Server-Socket zu machen für HTTP/2?
Warum Sie bestehende Implementierungen nicht überprüfen, wie Jetty, Netty und Undertow? Siehe [http2 Implementierungen] (https://github.com/http2/http2-spec/wiki/Implementations) –
@DonghwanKim Ja, ich habe zwei von ihnen angeschaut. ISTR, dass einer von ihnen ALPN über eine 'SSLExtension', IIRC, zu Java SSL-Sockets hinzufügt. Dies könnte eine Möglichkeit sein, ALPN für Java zu bekommen und somit in der Lage zu sein, einen Browser mit 'h2' HTTP/2 zu verbinden. Könnte zu viel Arbeit sein, ich weiß es nicht. Ich könnte nur warten und hoffen, dass Java irgendwann ALPN in einigen Updates bekommt. –
Java wird nicht ALPN bekommen bis mindestens JDK 9, die inzwischen für Ende 2016 oder 2017 geplant ist, können Sie [Jetty] (http://eclipse.org/jetty) 's [ALPN Implementierung] (http: //www.eclipse.org/jetty/documentation/current/alpn-chapter.html), oder noch besser, verwenden Sie Jetty (oder andere Server wie vorgeschlagen) direkt, anstatt Ihre eigene HTTP/2-Implementierung mit ServerSocket durchzuführen. – sbordet