Hello!
Let’s say we want to connect to external WebSocket API using
val webSocketFlow: Flow[Message, Message, Future[WebSocketUpgradeResponse]] =
Http().webSocketClientFlow(WebSocketRequest("wss://..."))
val incoming: Sink[Message, Future[Done]] = Sink.foreach[Message] { ... }
val outgoing = Source.maybe[Message]
val (upgradeResponse: Future[WebSocketUpgradeResponse], closed: Future[Done]) =
outgoing
.viaMat(webSocketFlow)(Keep.right)
.toMat(incoming)(Keep.both)
.run()
Does it possible to stream this data to internal clients (to microservices which providing real-time analytics) using own WS endpoint?
To make this possible, I need to “connect” incoming
sink from code above to msFlow
below, but I have no idea, how to define msFlow
val websocketRoute =
path("ms") {
handleWebSocketMessages(msFlow)
}
val serverBinding: Future[Http.ServerBinding] = Http().bindAndHandle(websocketRoute, $host, $port)
What is the right approach to solving this problem at all?
Thanks!