Scala 如何在PlayFramework中通过WebSocket将数据从Kafka流发送到客户端?
我正在使用Playframework和Scala。我试图使用来自Kafka的数据,处理数据,然后通过WebSocket将数据推送到客户端。不幸的是,我对这项技术还比较陌生 在浏览文档时,他们提到了在创建WebSocket时创建一个actor。下面的代码来自网站 我的问题是,我应该把卡夫卡消费代码放在哪里。我要把它放在演员里面吗?这是最佳实践吗?我之所以担心把它放在卡夫卡消费者那里,是因为它会阻塞 提前感谢您的帮助。Akka Streams+实际上让这变得非常简单。只需将Kafka源连接到WebSocket源,即可通过WebSocket向客户端发送Kafka消息。下面是一个完整的演示,包含以下代码:Scala 如何在PlayFramework中通过WebSocket将数据从Kafka流发送到客户端?,scala,playframework,websocket,apache-kafka,kafka-consumer-api,Scala,Playframework,Websocket,Apache Kafka,Kafka Consumer Api,我正在使用Playframework和Scala。我试图使用来自Kafka的数据,处理数据,然后通过WebSocket将数据推送到客户端。不幸的是,我对这项技术还比较陌生 在浏览文档时,他们提到了在创建WebSocket时创建一个actor。下面的代码来自网站 我的问题是,我应该把卡夫卡消费代码放在哪里。我要把它放在演员里面吗?这是最佳实践吗?我之所以担心把它放在卡夫卡消费者那里,是因为它会阻塞 提前感谢您的帮助。Akka Streams+实际上让这变得非常简单。只需将Kafka源连接到WebS
import play.api.libs.json.JsValue
import play.api.mvc._
import play.api.libs.streams._
class Controller4 @Inject() (implicit system: ActorSystem, materializer: Materializer) {
import akka.actor._
class MyWebSocketActor(out: ActorRef) extends Actor {
import play.api.libs.json.JsValue
def receive = {
case msg: JsValue =>
out ! msg
}
// do i include my kafka consumer here???
}
object MyWebSocketActor {
def props(out: ActorRef) = Props(new MyWebSocketActor(out))
}
def socket = WebSocket.accept[JsValue, JsValue] { request =>
ActorFlow.actorRef(out => MyWebSocketActor.props(out))
}
}