1

我正在学习 Iteratee 和相关 API,以满足我对实时推文的要求之一。使用 Play 2.1 和 Scala 2.10。是否遵循使用 Iteratee 的最佳方式,它也会产生将推文保存到 MongoDB 的结果?

val wsStream = new Enumerator[Array[Byte]] {
  def apply[A](iteratee: Iteratee[Array[Byte], A]) = {
    WS.url("https://stream.twitter.com/1.1/statuses/filter.json?track=" + term)
      .sign(OAuthCalculator(Twitter.KEY, tokens))
      .get(_ => iteratee)
  }
}

wsStream.apply(Iteratee.foreach(bytes => saveTweetToMongo(bytes)))
4

1 回答 1

2

请注意,您可以将多个迭代器应用于同一个枚举器。换句话说,您可以创建 astreamingTweetIteratee和 asaveTweetToMongoIteratee并将两者应用于提供推文的枚举器。

当我在 REPL 中进行原型设计时,我经常创建一个简单的loggingIteratee方法,它将所有内容都集中到 STDOUT 中。我将它和我正在写的迭代器都应用到同一个枚举器。

我假设您想使用 WebSockets 将推文流式传输到客户端?如果您查看 Play 附带的聊天演示!你会知道如何去做。

于 2013-03-14T17:38:01.027 回答