【发布时间】:2015-04-04 00:33:38
【问题描述】:
我使用 JDK 1.8 和 ALPN 运行 Jetty 服务器,如下所述:How to run Jetty with SPDY using ALPN?
有行:
ALPNServerConnectionFactory alpn = new ALPNServerConnectionFactory("spdy/3", "http/1.1");
和:
HTTPSPDYServerConnectionFactory spdy = new HTTPSPDYServerConnectionFactory(SPDY.V3, httpConfig, push);
但 Chrome 40 只使用“spdy/3.1”和“http/1.1”。启用 ALPN 调试后,它看起来像:
[S] ALPN protocols [spdy/3.1, http/1.1] received from client for 1987cc45[SSLEngine[hostname=169.0.1.126 port=59439] SSL_NULL_WITH_NULL_NULL]
协商以http/1.1 结束。所以我把那行改成:
ALPNServerConnectionFactory alpn = new ALPNServerConnectionFactory("spdy/3.1", "http/1.1");
这表明spdy/3.1 被选中:
[S] ALPN protocol 'spdy/3.1' selected for 1987cc45[SSLEngine[hostname=169.0.1.126 port=59439] SSL_NULL_WITH_NULL_NULL]
但是 Chrome 没有收到响应。我在服务器端没有发现任何异常,但似乎 Jetty 无法与 SPDY/3.1 一起使用。
Jetty 可以与 SPDY/3.1 一起使用吗?如何设置?
我使用 JDK 1.8.0_31 并在引导程序中使用 alpn-boot-8.1.3.v20150130.jar。
【问题讨论】:
-
关于 Jetty 上 SPDY 的更新 -> twitter.com/JettyProject/status/560828357424594946
-
谢谢。所以我必须等待支持 HTTP/2 的 Jetty 9.3 并在 Chrome 中启用此协议。我看到这项工作在webtide.com :-)
-
Jetty 9.3 已经有了 HTTP/2。 (顺便说一句,这就是 git master 分支)
-
SPDY 未来的另一个更新(Chrome 正在弃用它)-twitter.com/igrigorik/status/564850517071757314