2017-05-04 2 views
0

일반적으로 Akka HTTP 및 Scala를 처음 사용합니다. Akka 액터를 사용하여 HTTP 요청을 처리하려고했습니다. HTTP 요청이 발생하면 해당 하위 액터가 활성화됩니다. 당신의 CorsResponder가 메시지를 수신하면Akka 액터를 사용하여 Akka에서 HTTP 요청을 처리하는 방법

object AncileService01 extends App { 
    val config = ConfigFactory.load() 
    val host = config.getString("http.host") 
    val port = config.getInt("http.port") 

    implicit val system = ActorSystem("My-ActorSystem") 
    implicit val executionContext = system.dispatcher 
    implicit val materializer = ActorMaterializer() 

    val api = corsRoute 

    Http().bindAndHandle(api, host, port) 
} 

답변

0

, 당신이 보낸 사람에게 회신 할 :이 같은 내 메인 프로그램으로 연결 어떻게 지금

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") 
    } 
} 

: 현재이 내 배우 논리이다. 내 주요 방법이 어떻게 보일지 알 수있을 것 같은,

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

관련 문제