Hello world with Akka
Let's install Akka. We add it as a dependency to our build.sbt file:
scalaVersion := "2.11.7" libraryDependencies += "com.typesafe.akka" %% "akka-actor" % "2.4.0"
We can now import Akka as follows:
import akka.actor._
For our first foray into the world of actors, we will build an actor that echoes every message it receives. The code examples for this section are in a directory called chap09/hello_akka in the sample code provided with this book (https://github.com/pbugnion/s4ds):
// EchoActor.scala
import akka.actor._
class EchoActor extends Actor with ActorLogging {
def receive = {
case msg:String =>
Thread.sleep(500)
log.info(s"Received '$msg'")
}
}Let's pick this example apart, starting with the constructor. Our actor class must extend Actor. We also add ActorLogging, a utility trait that adds the log attribute.
The Echo actor exposes a single method, receive. This is the actor's only way of communicating with the external world. To be useful...