Как в службе akka-http кэшировать некоторую информацию для каждого сеанса клиента? Это не совсем очевидно в документах. Например, я хотел бы создать актера для каждого соединения.
Где я должен создать актера и как мне получить ссылку на него внутри моих стадий?
Моя служба связана примерно так:
val serverSource: Source[Http.IncomingConnection, Future[Http.ServerBinding]] =
Http().bind(interface = bindAddress, port = bindPort)
val bindingFuture: Future[Http.ServerBinding] =
serverSource
.to(Sink.foreach { connection =>
connection.handleWithSyncHandler (requestHandler)
// seems like I should set up some session state storage here,
// such as my actor
})
.run()
...
и позже:
val packetProcessor: Flow[A, B, Unit] = Flow[A]
.map {
case Something =>
// can i use the actor here, or access my session state?
}
Я подозреваю, что, возможно, неверно истолковываю всю парадигму, пытаясь подогнать ее. Я не могу сказать, есть ли что-то встроенное или сколько мне нужно реализовать вручную.