Jetty:可以使用 SPDY/3.1 吗?
Posted
技术标签:
【中文标题】Jetty:可以使用 SPDY/3.1 吗?【英文标题】:Jetty: is it possible to use SPDY/3.1? 【发布时间】: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 【参考方案1】:Jetty 不支持SPDY/3.1
,只支持SPDY/3
。
事实上,Jetty 永远不会支持SPDY/3.1
。
SPDY 和 NPN 刚刚在即将发布的 Jetty 9.3.0 版本中从代码树中删除。
http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/commit/?id=2162455b72d5a474bba47d5daf5543d46c2688be
【讨论】:
以上是关于Jetty:可以使用 SPDY/3.1 吗?的主要内容,如果未能解决你的问题,请参考以下文章
jetty 支持内嵌ssh项目吗,为啥在tomcat下面正常的war 放到jetty就跑不起来