该方法的返回类型perRequestActor
是 Route,但您返回的是ActorRef
.
从文档
type Route = RequestContext => Future[RouteResult]
它是一个以 RequestContext 作为参数并返回 Future[RouteResult] 的函数的简单别名。
通常,当一个路由接收到一个请求(或者更确切地说是一个请求上下文)时,它可以执行以下操作之一:
Complete the request by returning the value of requestContext.complete(...)
Reject the request by returning the value of requestContext.reject(...) (see Rejections)
Fail the request by returning the value of requestContext.fail(...) or by just throwing an exception (see Exception Handling)
Do any kind of asynchronous processing and instantly return a Future[RouteResult] to be eventually completed later on
对于使用tell
模式,您可以向您创建的参与者发送消息。
val actor = system.actorOf(propsCreator(ctx, message), "per-req-actor")
actor ! SomeMessage
最新版本(1.0)的文档akka-http
更清晰,签名略有不同。如果您刚开始学习,您可能应该使用它。