Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 为这个用例播放Iteratee_Scala_Playframework_Playframework 2.1 - Fatal编程技术网

Scala 为这个用例播放Iteratee

Scala 为这个用例播放Iteratee,scala,playframework,playframework-2.1,Scala,Playframework,Playframework 2.1,我正在学习Iteratee和相关API,以满足我对实时推特流的一个需求。使用Play 2.1和Scala 2.10。下面是使用Iteratee的最佳方法吗?Iteratee也会产生将tweet保存到MongoDB的结果 val wsStream = new Enumerator[Array[Byte]] { def apply[A](iteratee: Iteratee[Array[Byte], A]) = { WS.url("https://stream.twitter.com/1

我正在学习Iteratee和相关API,以满足我对实时推特流的一个需求。使用Play 2.1和Scala 2.10。下面是使用Iteratee的最佳方法吗?Iteratee也会产生将tweet保存到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)))

注意,您可以将多个迭代器应用于同一个枚举数。为了对单词进行排序,您可以创建一个
StreamingWeetiteRate
和一个
saveTweetToMongoIteratee
,并将两者应用于提供推文的枚举器

我经常创建一个简单的
loggingIteratee
,当我在REPL中进行原型设计时,它会将所有内容导入到STDOUT。我将它和我正在编写的迭代对象应用于同一个枚举器

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