Реактивные веб-приложения читают твиттер-поток Play Scala

Я пытаюсь следовать примеру потока Twitter для реактивных веб-приложений. книга основана на PlayFramework 2.5, однако я хотел бы использовать более новую версию фреймворка, почему бы и нет. В примере книги используется сторонняя библиотека https://github.com/jroper/play-iteratees-extras, который не работает с более новыми версиями Play. В примере эта библиотека используется для кодирования потока, полученного из Twitter, и для создания итерации объектов Json. Мой вопрос: есть ли способ обойти эту библиотеку с помощью существующего API Scala/Play?

Кусок кода следующий:

val jsonStream: Enumerator[JsObject] =
    enumerator &>
    Encoding.decode() &>
    Enumeratee.grouped(JsonIteratees.jsSimpleObject)

val loggingIteratee = Iteratee.foreach[JsObject] { value =>
    Logger.info(value.toString)
}

Я пытался не использовать часть декодирования и создать итерацию JsObject, однако получаю сообщение об ошибке в отношении итераций:

объект Iteratee не принимает параметры типа.

Любой намек на то, как обойти эту библиотеку?


person Cheluis    schedule 09.06.2019    source источник
comment
Итерации устарели в пользу Akka-Stream, как вы можете видеть в руководстве по миграции   -  person cchantep    schedule 10.06.2019


Ответы (2)


Мне пришлось сделать следующее, чтобы следовать книге до Т. Я понимаю, что это старый материал, но просто хочу получить начальные концепции, а затем перейти к более новым процессам.

  1. scalaVersion := "2.10.7" in build.sbt
  2. sbt.version=0.13.13 in build.properties
  3. addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.4.10") in plugins.sbt
person w33b    schedule 21.12.2020

Я столкнулся с той же проблемой и после некоторого поиска нашел решение с использованием Akka Streams. Надеюсь, это поможет.

person jernejl    schedule 27.02.2020