0

Play 2.3 アプリケーションに WebSocket-to-TCP プロキシを追加する必要があります。アクターベースの API は明らかにサポートされていませんが、James Roper は次のように述べています。

Iteratee は設計によってこれを処理します。それまでは参照がないため、返される最後の future が償還されるまで、新しい要素を iteratee にフィードすることはできません。

しかし、彼が何を指しているのかわかりません。Iteratee.foreach、例で使用されているように、単純すぎるようです。私が iteratee API で目にする先物は、計算結果を完成させるためのものだけです。メッセージごとに入力する必要がありFuture[Unit]ますか?

4

2 に答える 2

4

Iteratee.foldM通常の折り畳み操作と同じように、各ステップに状態を渡し、未来を返すことができます。そのような状態がない場合は、渡すだけUnitで、future が完了するまで次のステップを受け入れない foreach として動作します。

まさにそれを行うユーティリティ関数の例を次に示します。

 def foreachM[E](f: E => Future[Unit])(implicit ec: ExecutionContext): Iteratee[E, Unit] = 
   Iteratee.foldM[E, Unit](Unit)((_, e) => f(e))
于 2015-01-20T20:38:44.437 に答える