gpt4 book ai didi

scala - 您如何通过 Play Framework 中的 Websockets 将数据从 Kafka 流发送到客户端?

转载 作者:行者123 更新时间:2023-12-01 12:28:15 25 4
gpt4 key购买 nike

我正在使用 Playframework 和 Scala。我正在尝试使用来自 Kafka 的数据,处理数据,然后通过 websockets 将数据推送到客户端。不幸的是,我仍然是这项技术的新手。

在查看文档时,他们提到在您想要创建 websocket 时创建一个 actor。下面的代码来自网站。 web socket

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))
}
}

我的问题是,我将 Kafka 消费者代码放在哪里。我把它放在 Actor 里面吗?这是最佳做法吗?我担心将它放在 kafka 消费者那里的原因是它会阻止。

预先感谢您的帮助。

最佳答案

Akka Streams + Reactive Kafka实际上使这很容易。只需将 Kafka Source 连接到 WebSocket Source 即可通过 WebSocket 将 Kafka 消息发送到客户端。这是一个完整的演示代码:
https://www.jamesward.com/2016/05/25/combining-reactive-streams-heroku-kafka-and-play-framework/

关于scala - 您如何通过 Play Framework 中的 Websockets 将数据从 Kafka 流发送到客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37305697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com