2

Ich verwende das Playframework zusammen mit Scala. Ich versuche, Daten von Kafka zu konsumieren, die Daten zu verarbeiten und dann die Daten über Websockets an den Client zu senden. Leider bin ich mit dieser Technologie relativ noch ein Neuling.Wie senden Sie Daten von Kafka-Streams über Websockets in PlayFramework an Kunden?

Wenn Sie die Dokumentation durchgehen, erwähnen sie, dass Sie einen Akteur erstellen müssen, wenn Sie Websockets erstellen möchten. Code unten ist von der Website. 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)) 
    } 
} 

Meine Frage ist, wo ich die Kafka Verbraucher Code setzen Sie. Lege ich es in den Schauspieler? Ist diese Best Practice? Der Grund, warum ich mich darum kümmere, den Kafka-Konsumenten dorthin zu bringen, ist, dass es blockieren wird.

Vielen Dank im Voraus für Ihre Hilfe.

Antwort