2017-05-31 20 views
0

私は遅延を伴ってJavaでPlay Framework 2.5でHTTP経由でコンテンツをストリーミングしようとしていました。Play Framework 2.5遅延付きコンテンツのストリーミング

問題は、結果が実際にストリーミングしているかどうかわからないということです。なぜなら、何らかの理由で動作していない発光から各アイテムを遅らせるためです。

コードは

public Result test(){ 

    HttpEntity http = new HttpEntity.Streamed(Source.range(0, 99999) 
      .map(i -> ByteString.fromString(i.toString())) 
      .initialDelay(FiniteDuration.create(200, TimeUnit.MILLISECONDS)) 
      , Optional.empty(), Optional.of("text/event-stream")); 
    return ok().sendEntity(http); 
} 

応答​​を見出すことができます。

値を返しますが、遅延させず、しばらくの間読み込むと応答全体を送信します。 initialDelayが遅延の正しい演算子であるかどうかはわかりません。

これはPlayでストリームを送信する正しい方法ですか?このページを参考にしていますhttps://www.playframework.com/documentation/2.5.x/StreamsMigration25

ありがとうございます!

+0

ご使用のブラウザと再生機能によって、ストリームの一部がバッファに保存されることがあります。 'initialDelay'は使うべき正しい設定のようです。新しい行を含むストリームを送信してみてください: 'i.toString()+" \ n "' curlを使って結果を表示してみてください – vdebergue

答えて

0

initialDelayではなく、delayを使用する必要があります。これは、フローの開始時の遅延に過ぎません。バッファがいっぱいになったときのオーバーフロー戦略を定義する必要があることに注意してください。

+0

ありがとうございます。私は同じ問題を抱えていますが、Reactive Driverを使ってMongoDBデータベースから実際のデータを受け取ってもこの演算子を使用しています。私はこれについて新しい質問をする必要があるかどうかはわかりません。それとも、私はあなたに午後を送ることができますか? –

関連する問題