我有一个通过 POST 请求接收消息的 REST 服务(Play Framework 2.0 w/Scala)。
我想让用户查看网页中收到的消息队列。我想在浏览器和服务器之间创建一个 SSE 通道,以便服务器将新消息推送到浏览器。
为了创建该 SSE 流,根据文档,我使用了 Enumerator/Enumeratee/Iteratee 链。
我的问题是:如何将从 POST 请求收到的消息注入枚举器。所以给出如下代码:
def receive(msg: String) = Action {
sendToEnumerator()
Ok
}
val enumerator = Enumerator.fromCallback( ??? )
def sseStream() = Action {
Ok.stream(enumerator &> anotherEnumeratee ><> EventStrem()).as("text/evetn-stream")
}
我应该在sendToEnumerator
和enumerator
(???在哪里)。或者我应该只使用 WebSockets 和 Actors 吗?(由于更广泛的兼容性,我更喜欢 SEE,所以如果可能的话,我想使用 SSE)