如何从 sbt 向演员发送消息 shell

how t send message to actor from sbt shell

我用远程 actor 创建了一个简单的应用程序(示例来自 here):

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 向其发送消息?

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

只需要一个 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. 您可以在那里获取演员参考。