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

45 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 akka.actor.Actor
import akka.actor.Actor._
import akka.remote.{RemoteClient, RemoteNode}
import akka.util.Logging
2010-05-04 10:40:58 +02:00
class HelloWorldActor extends Actor {
def receive = {
2010-06-01 18:41:39 +02:00
case "Hello" =>
2010-11-24 13:42:41 +01:00
log.slf4j.info("Received 'Hello'")
self.reply("World")
2010-05-04 10:40:58 +02:00
}
}
object ServerManagedRemoteActorServer extends Logging {
def run = {
RemoteNode.start("localhost", 2552)
2010-11-24 13:42:41 +01:00
log.slf4j.info("Remote node started")
2010-05-08 19:01:12 +02:00
RemoteNode.register("hello-service", actorOf[HelloWorldActor])
2010-11-24 13:42:41 +01:00
log.slf4j.info("Remote actor registered and started")
2010-05-04 10:40:58 +02:00
}
def main(args: Array[String]) = run
}
object ServerManagedRemoteActorClient extends Logging {
2010-06-01 18:41:39 +02:00
2010-05-04 10:40:58 +02:00
def run = {
val actor = RemoteClient.actorFor("hello-service", "localhost", 2552)
2010-11-24 13:42:41 +01:00
log.slf4j.info("Remote client created")
log.slf4j.info("Sending 'Hello' to remote actor")
2010-05-04 10:40:58 +02:00
val result = actor !! "Hello"
2010-11-24 13:42:41 +01:00
log.slf4j.info("Result from Remote Actor: '%s'", result.get)
2010-05-04 10:40:58 +02:00
}
def main(args: Array[String]) = run
}