2017-09-23 1 views
2

재생 프레임 워크 (v 2.6.5 스칼라)에서 실행되는 백엔드는 Apple Push Notificaton Service (APN)와 통신해야합니다. APN은 HTTP/2를 사용해야하므로 통신을 구현할 방법을 찾지 만, 놀랍게도 HTTP v 2.0을 지원하는 모든 HTTP 스칼라 클라이언트를 찾지 못했습니다. 프레임 워크를 벗어나지 않고 그러한 의사 소통을 실현할 수있는 방법이 있습니까? 감사합니다.재생 프레임 워크 (스칼라)에서 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 플러그인을 추가하십시오. 당신은 enablePlugins이 작업을 수행 할 수 있습니다

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

당신이 대안에 대해 살펴 걸릴 고려하는 경우 :

  1. Jetty는 HTTP 사용할 수있는 기능이 2.0
  2. Netty 또한 HTTP 2.0
지원

HTTP 2.0의 알려진 구현 중 list을 확인하십시오.

0

Akka HTTP에서 Play! Framework, HTTP/2 지원은 서버 측에서 실험적이며 아직까지는 클라이언트 측에서 사용할 수 없습니다. 작업이 진행 중이며 Github에 추적됩니다. HTTP/2 클라이언트 지원을 직접 작성하고 선택적으로 프로젝트에 기부해야하는 경우가 아니라면 (아마도 매우 만족스러운 경험 일 것입니다.) 프레임 워크 외부로 나가는 것이 아마도 현재로서는 필연적 일 것입니다. 나는 두려워합니다. .

Java 9를 사용할 수있는 위치에 있다면 (이봐, 2 일 동안 금상첨!), HTTP/2 클라이언트를 고려해보십시오.

Vert.x는 원래 NodeJS에서 영감을 자바 프레임 워크이지만, 현재의 화신 그것은 스칼라 API를 가진 HTTP/2 클라이언트를 포함 http://vertx.io/docs/vertx-web-client/scala/ - 내가 그렇게 생산을 사용한 적이 YMMV ...

편집 :sttp도 HTTP/2를 지원하는 OkHttp 백엔드로 간주 할 수 있습니다.

관련 문제