我想让服务器套接字在Java中使用HTTP/2,最好是TLS/https。Java HTTP/2服务器套接字
我已经有一个TLS服务器套接字工作正常,但浏览器只会与HTTP/1.1通话。如果我理解正确,您需要ALPN才能让HTTP/2浏览器连接到您的TLS套接字并开始在其上运行HTTP/2;浏览器不会要求在https上升级到HTTP/2。看来Java8到目前为止并没有执行ALPN。也许还有其他一些方式来强制浏览器执行HTTP/2,至少是非TLS。
那么,任何人都知道如何为HTTP/2制作一个Java服务器套接字?
为什么不检查像Jetty,Netty和Undertow这样的现有实现?参见[http2的实现](https://github.com/http2/http2-spec/wiki/Implementations) – 2015-04-02 15:00:23
@DonghwanKim是的,我看过其中两个。 ISTR,他们中的一个通过一些'SSLExtension',IIRC将ALPN添加到Java SSL套接字。这可能是获得Java的ALPN的一种方式,因此可以让浏览器连接'h2'HTTP/2。可能工作太多,我不知道。我可能会等待并希望Java最终能在某些更新中获得ALPN。 – 2015-04-02 19:04:34
Java将不会获得ALPN,直到至少将于2016年末或2017年的JDK 9发布。同时,您可以使用[Jetty](http://eclipse.org/jetty)的[ALPN实现](http: //www.eclipse.org/jetty/documentation/current/alpn-chapter.html),或者更好的是,直接使用Jetty(或其他服务器),而不是使用ServerSocket自己执行HTTP/2实现。 – sbordet 2015-04-03 20:46:56