9. Iteratee を学びたての
James Roper さん曰く (2012/11)
• “Well I just learnt iteratees, and although I'm
feeling more and more comfortable with
functional programming every day, I still
think like an imperative programmer at
heart. This made learning iteratees very
difficult for me.”
• Typesafe 社で Play の tech lead やってる人も
難しいっていってた
http://jazzy.id.au/default/2012/11/06/iteratees_for_imperative_programmers.html
36. Actor based web socket API
• Play 2.3 から入る
• 自分で頑張る部分を手助けしてくれる
ドキュメント内のサンプルコード
def socket = WebSocket.acceptWithActor[String, String] {
request => out =>
MyWebSocketActor.props(out)
}
RequestHeader
ActorRef (出力担当Actor)
Props (入力担当Actorの設定)
37. Actor based web socket API
Browser
Play
Enumerator
Iteratee
出力Actor
入力Actor
Props
ここは自分で頑張る
38. 身近なIteratee (Result)
def index = Action {
Ok("hello")
}
!
case class Result(
header: ResponseHeader,
body: Enumerator[Array[Byte]])
これは Result 型