NettyでHTTP/2プッシュプロミスをテストしようとしていますが、動作していないようです。以下のような単純なようである場合に使用します。Netty HTTP/2 writePushPromiseはブラウザを無期限にループさせます
- リクエストホーム/インデックスページ
- インデックスページ私は
PUSH_PROMISE
index.js
のために書くと
index
のページのフラッシュコンテンツを送信するよう
index.js
ファイルに依存します。ここで
私がやったことです:
int nextStreamId = encoder.connection().local().incrementAndGetNextStreamId();
String authority = request.headers().get("host");
Http2Headers pushHeaders = new DefaultHttp2Headers()
.method("GET")
.path("/assets/index.js")
.authority(authority)
.scheme("https");
encoder.writePushPromise(ctx, Integer.parseInt(streamId), nextStreamId, pushHeaders, 0, ctx.newPromise());
それが正常に/assets/index.js
ファイルは、すべての時にロードされていませんし、ブラウザにPUSH_PROMISE
を送ったが(ブラウザが応答を無期限待機)
これは、PUSH_PROMISE
を送信したときにのみ発生し、すべての行が削除され、両方のファイル(HTML + j)がH2経由で適切に配信されます。
フルデモがPUSH_PROMISE
のソースコードはhereある
(あなたが危険な警告を受け入れなければならないので、それが自己署名証明書を使用しています)here可能です。
何か間違っていますか?
ありがとうございました。
オンラインでコードを送信していただきありがとうございます!理解して助けがとても簡単になります! –