2017-09-23 57 views
2

在播放框架(v.2.6.5 scala)下運行的後端必須與Apple推送通知服務(APN)通信。 APN需要使用HTTP/2,所以我試圖找到任何方式來實現這樣的通信,但令我驚訝的是我沒有找到任何支持http v 2.0的http scala客戶端。 有沒有什麼方法可以實現這樣的溝通而不會脫離框架? 謝謝!如何在播放框架(scala)中發送HTTP 2.0請求

回答

1

使用2.6之前版本的Play Framework不支持HTTP 2.0,但Play Framework 2.6基於Akka-Http並且對於HTTP 2.0具有experimental support。此功能被標記爲「實驗性」,因爲API將來可能會發生變化,並且尚未經過徹底的全面測試。

要添加對HTTP/2的支持,請添加PlayAkkaHttp2Support插件。如果你考慮替代方案來看看

lazy val root = (project in file(".")) 
    .enablePlugins(PlayScala, PlayAkkaHttp2Support) 

:您可以在enablePlugins做到這一點

  1. Jetty必須使用HTTP能力2.0
  2. Netty還支持HTTP 2.0

檢查HTTP 2.0的已知實現的這個list

0

在Akka HTTP中,它是Play的基礎!就我所知,框架HTTP/2支持在服務器端是實驗性的,在客戶端還沒有提供。工作正在進行中,並在Github上進行跟蹤。除非您傾向於自己編寫HTTP/2客戶端支持,並且可以選擇將其捐贈給項目(這可能會是一個非常令人滿意的體驗),那麼走出框架恐怕將成爲現在的必要條件,恐怕。

如果你有能力使用Java 9(嘿,這已經是黃金兩天了!),你可以考慮它的HTTP/2客戶端。

Vert.x原本是一個Java框架,通過啓發的NodeJS,但在其目前的化身,它包括一個HTTP/2客戶端與斯卡拉API:http://vertx.io/docs/vertx-web-client/scala/ - 我從來沒有用它在生產,使因人而異...

編輯:你也可以考慮sttp OkHttp後端,它支持HTTP/2。

相關問題