在play框架下运行的后端(v.2.6.5Scala)必须与Apple Push Notificaton Service (APN)通信。APN需要使用HTTP/2,因此我试图找到实现这种通信的任何方法,但令我惊讶的是,我没有找到任何支持HTTPv2.0的http客户端。有没有办法在不脱离框架的情况下实现这种交流?谢谢!
发布于 2017-09-24 19:06:49
以前版本的Play Framework不支持HTTP2.0,但是,Play Framework2.6基于Akka-Http,并且有experimental support for HTTP2.0。这个特性被标记为“试验性的”,因为API将来可能会改变,而且它还没有在野外进行彻底的测试。
若要添加对HTTP/2的支持,请添加PlayAkkaHttp2Support插件。您可以在enablePlugins中这样做:
lazy val root = (project in file("."))
.enablePlugins(PlayScala, PlayAkkaHttp2Support)如果您考虑其他方案,请看一看:
Jetty具有使用HTTP2.0的能力Netty还支持HTTP2.0检查HTTP2.0已知实现的列表。
发布于 2017-09-23 21:23:26
在Akka HTTP中,这是游戏的基础!据我所知,框架HTTP/2支持在服务器端是实验性的,在客户端尚不可用。工作正在进行中,并在Github上进行跟踪。除非您倾向于编写HTTP/2客户端支持自己,并选择将其捐赠给项目(这可能是一个非常令人满意的体验),否则我担心,目前来说,走出框架可能是必要的。
如果您能够使用Java 9(嘿,已经用了两天了!),您可以考虑使用它的HTTP/2客户端。
Vert.x最初是一个受NodeJS启发的Java框架,但在其当前的版本中,它包含了一个带有Scala:http://vertx.io/docs/vertx-web-client/scala/的HTTP/2客户机--我从未在生产中使用过它,所以YMMV.
编辑:--您还可以考虑使用支持HTTP/2的OkHttp后端的sttp。
https://stackoverflow.com/questions/46382307
复制相似问题