objectHengHaextendsApp {val system = ActorSystem("HengHaSystem")val ha = system.actorOf(Props[Ha], name = "ha")val heng = system.actorOf(Props(newHeng(ha)), name = "heng") heng ! "start"}
classHeng(ha: ActorRef) extendsActor {defreceive = {case"start" => ha ! "heng"case"ha" => println("哈") ha ! "heng"case _ => println("heng what?") }}
object Local extends App {
val system = ActorSystem("LocalSystem")
val localActor = system.actorOf(Props[LocalActor], name = "LocalActor") // the local actor
localActor ! "START" // start the action
}
classLocalActorextendsActor {// create the remote actorval remote = context.actorSelection("akka.tcp://HelloRemoteSystem@127.0.0.1:5150/user/RemoteActor")var counter = 0defreceive = {case"START" => remote ! "Hello from the LocalActor"case msg: String => println(s"LocalActor received message: '$msg'")if (counter < 5) { sender ! "Hello back to you" counter += 1 } }}
objectHelloRemoteextendsApp {val system = ActorSystem("HelloRemoteSystem")val remoteActor = system.actorOf(Props[RemoteActor], name = "RemoteActor") remoteActor ! "The RemoteActor is alive"}
classRemoteActorextendsActor {defreceive = {case msg: String => println(s"RemoteActor received message '$msg'") sender ! "Hello from the RemoteActor" }}