2017-05-04 13 views
0

Akka HTTPとScalaの方が一般的です。私はAkkaの俳優を使ってHTTPリクエストを処理しようとしていました。 HTTP要求に遭遇すると、対応する子アクターがアクティブになります。現在、これは私の俳優・ロジックです:どのように私はこのようなものです私のメインプログラム、差し込むんAkkaのアクターを使ってAkkaのHTTPリクエストを処理する方法

trait CorsDirective extends BasicDirectives { actor: Actor => 

    private def createResponder(requestContext: RequestContext) = { 
    context.actorOf(Props(new CorsResponder(requestContext))) 
    } 

    val corsRoute = { 
    path("corsdirective") { 
     get { 
     requestcontext => 
      val corsresponder = createResponder(requestcontext) 
      corsresponder ! "corsdirectiveactiviated" 
     } 
    } 
    } 
} 

class CorsResponder(requestcontext: RequestContext) extends Actor { 

    override def receive: Receive = { 
    case String => requestcontext.complete("The cors directive was called here") 
    } 
} 

は今:あなたのCorsResponderがメッセージを受信すると

​​

答えて

0

、あなたは送信者に返信します。私は私の主な方法がどのように見えるかを知っている可能性があり、

import akka.pattern.ask 
import context.dispatcher // You will want to pass it to corsRoute as its argument 

(corsresponder ? "corsdirectiveactiviated").mapTo[String] { result => 
    case message => complete(message) 
} 
+0

こんにちは@Branislav:あなたの要求を完了するために

class CorsResponder(requestcontext: RequestContext) extends Actor { override def receive: Receive = { case String => sender ! "The cors directive was called here" } } 

使用askパターン:だから、このような何かを?ありがとう – BigDataScholar

関連する問題