pekko/akka-samples/akka-sample-remote/src/main/scala/ServerManagedRemoteActorSample.scala

46 lines
1.1 KiB
Scala
Raw Normal View History

2010-05-04 10:40:58 +02:00
/**
* Copyright (C) 2009-2010 Scalable Solutions AB <http://scalablesolutions.se>
*/
package sample.remote
import se.scalablesolutions.akka.actor.Actor
2010-05-04 10:45:01 +02:00
import se.scalablesolutions.akka.actor.Actor._
2010-05-04 10:40:58 +02:00
import se.scalablesolutions.akka.remote.{RemoteClient, RemoteNode}
import se.scalablesolutions.akka.util.Logging
class HelloWorldActor extends Actor {
start
def receive = {
case "Hello" =>
log.info("Received 'Hello'")
reply("World")
}
}
object ServerManagedRemoteActorServer extends Logging {
def run = {
RemoteNode.start("localhost", 9999)
log.info("Remote node started")
2010-05-04 10:45:01 +02:00
RemoteNode.register("hello-service", newActor[HelloWorldActor])
2010-05-04 10:40:58 +02:00
log.info("Remote actor registered and started")
}
def main(args: Array[String]) = run
}
object ServerManagedRemoteActorClient extends Logging {
def run = {
val actor = RemoteClient.actorFor("hello-service", "localhost", 9999)
log.info("Remote client created")
log.info("Sending 'Hello' to remote actor")
val result = actor !! "Hello"
log.info("Result from Remote Actor: '%s'", result.get)
}
def main(args: Array[String]) = run
}