Scala 我想将第二条消息作为新消息发送给演员

Scala 我想将第二条消息作为新消息发送给演员,scala,akka,Scala,Akka,我有两个演员,例如,发件人: class ActorSender(actroReciever: ActorRef) extends Actor{ implicit val timeout = Timeout(100, TimeUnit.SECONDS) override def receive: Receive = { case "RUN" => { val resp = Await.result(actroReciever ? "Msg", 100.seco

我有两个演员,例如,发件人:

class ActorSender(actroReciever: ActorRef) extends Actor{
  implicit val timeout = Timeout(100, TimeUnit.SECONDS)

  override def receive: Receive = {
    case "RUN" => {
      val resp = Await.result(actroReciever ? "Msg", 100.seconds)
      println("receive response " + resp)
    };
    case str:String => println(str)
    case _ => println("Error type msg")
  }
}
接受者:

class ActroReciever extends Actor{
  override def receive: Receive = {
    case str:String => {
      val snd = sender()
      snd ! "MessageFirst"
      snd ! "MessageSecond"
    }
  }
}
以及开始上课的时间:

object Tester extends App {
  val system = ActorSystem("system")
  val receiver = system.actorOf(Props[ActroReciever](new ActroReciever()), "receiver")
  val sender = system.actorOf(Props[ActorSender](new ActorSender(receiver)), "sender")
  sender ! "RUN"
}

我想向sender()发送两条消息,第一条消息作为“询问”的回复,第二条消息作为“新消息”,哪个ActorSender执行“匹配”,我怎么做?谢谢

首先,您知道不应该使用
等待
,对吗

其次,
ask
)不用于参与者<代码>询问创建一个只能接收一条消息的临时参与者。接收答案的不是你的
ActorSender
,而是由ask创建的临时参与者。这就是为什么你觉得你只能发送一个答案

您这样做是错误的,您只需使用
actroReciever发送消息即可!“Msg”
。无需更改您的
ActorReciever
上的任何内容