Comet response 란 text/html 로 이루어지고 <scirpt> 태그에 감싸여진 응답을 말한다고 한다.... 본인은 처음 알았음..
그래서 이걸 쉽게 쓸 수 있는 방법을 소개한다.
참고 사이트 : https://www.playframework.com/documentation/2.3.x/ScalaComet
def comet = Action {
val events = Enumerator(
"""<script>console.log('kiki')</script>""",
"""<script>console.log('foo')</script>""",
"""<script>console.log('bar')</script>"""
)
Ok.chunked(events).as(HTML)
}
위의 코드를 웹 브라우저에서 실행결과로 받아보면 콘솔창에 kiki, foo, bar가 출력되어지는 걸 확인 할 수 있다.
이걸 이제 간편화 하는 단계를 살펴보자
import play.twirl.api.Html
// Transform a String message into an Html script tag
val toCometMessage = Enumeratee.map[String] { data =>
Html("""<script>console.log('""" + data + """')</script>""")
}
def comet = Action {
val events = Enumerator("kiki", "foo", "bar")
Ok.chunked(events &> toCometMessage)
}
이렇게 script 부분만 따로 작성하고.. 간편해졌다. 여기서 더 간편하게
def comet = Action {
val events = Enumerator("kiki", "foo", "bar")
Ok.chunked(events &> Comet(callback = "console.log"))
}
위와 같이 작성하면 된다...
'Development > Web & Server' 카테고리의 다른 글
[Play Framework2] JPA (0) | 2015.06.01 |
---|---|
[Play Framework2] WebSockets (0) | 2015.05.26 |
[Play Framework2] Streaming HTTP responses (0) | 2015.05.25 |
[Play Framework2] Action composition (0) | 2015.05.23 |
[Play Framework2] Session and Flash scopes (0) | 2015.05.22 |