1

我用远程演员创建了一个简单的应用程序(示例来自这里):

object HelloRemote extends App  {
  val system = ActorSystem("HelloRemoteSystem")
  val remoteActor = system.actorOf(Props[RemoteActor], name = "RemoteActor")
  remoteActor ! "The RemoteActor is alive"
}

class RemoteActor extends Actor {
  def receive = {
    case msg: String =>
        println(s"RemoteActor received message '$msg'")
        sender ! "Hello from the RemoteActor"
  }
}

是否可以从 sbt shell 向它发送消息?

4

2 回答 2

1

向 Actor 发送消息只需要一个 Actor 引用。例如,您可以在 scala shell 中执行相同操作:按照以下步骤操作:

import akka.actor._

在 shell 中定义您的 Actor。

class RemoteActor extends Actor {
        def receive = {
          case msg: String =>
              println(s"RemoteActor received message '$msg'")
              sender ! "Hello from the RemoteActor"
        }
        }

val system = ActorSystem("HelloRemoteSystem")
val remoteActor = system.actorOf(Props[RemoteActor], name = "RemoteActor")
remoteActor ! "The RemoteActor is alive"

这里 remoteActor 是实例化的 Actor 的引用。您可以从任何地方发送消息,如果 1. 这是演员还活着 2. 您可以在那里获得演员参考。

于 2017-02-11T17:58:11.340 回答
0

只有一个 Actor 可以向另一个 Actor 发送消息。

于 2017-02-11T17:15:41.610 回答