ich in einer Anfrage mit dem „fragen“ -Muster ein Schauspieler bin mit:Akka-Http: Wie man eine Antwort von einem Schauspieler zurückgibt?
val route =
pathPrefix("myapp") {
path("search") {
get {
(mainActorRef ? DoSomething("foo")).mapTo[ReturningType].map { result =>
complete(HttpEntity(ContentTypes.`application/json`, result))
}
}
}
}
Das Problem ist, dass der Hauptdarsteller mit anderen Akteuren in Verbindung steht und bekommt eine Antwort von einer jener Schauspieler wie dies zurück:
class MainActor extends Actor {
override def receive: Receive = {
case d:DoSomething =>
anotherActor ! DoThis(d)
// received from anotherActor as reply to DoThis
case r:DoThisResponse =>
// how do I send the response back to my “route”?
pipe (Future{r}) to ???
}
}
Wie kann ich diese Antwort als Antwort an Akka-Http senden?
Die Verwendung von "sender()" im Hauptakteur funktioniert nicht, da es nicht die richtige Referenz ist. Sollte ich in der DoSomething
ein paar Hinweise zur Verwendung mit "Tell" (!) Innerhalb des Hauptdarstellers geben? Wie gebe ich diese Referenz weiter?
Ich habe versucht, aber es funktioniert nicht. Ich kann nicht sehen, wie man es mit Forward macht. – Randomize
Strange.What passiert, wenn Sie vorwärts verwenden? –
Nichts, wie in DoSomething der Forward Trigger etwas in dem anderen Akteur, der irgendwann eine DoThisResponse senden wird. – Randomize