Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import akka.actor.{Actor, ActorRef, ActorSystem, PoisonPill, Props}
- class Player() extends Actor {
- private var n = 3
- override def receive: Receive = {
- case Player.Ping(message) => {
- println(message)
- sender ! Player.Pong()
- }
- case Player.Pong(message) => {
- println(message)
- n -= 1
- if (n <= 0) {
- sender ! PoisonPill
- self ! PoisonPill
- }
- else
- sender() ! Player.Ping()
- }
- }
- }
- object Player {
- def props = Props(classOf[Player]) //obiekt konf przy tworz aktora
- case class Ping(msg: String = "ping")
- case class Pong(msg: String = "pong")
- }
- object Main extends App {
- val ourSystem = ActorSystem("MySystem")
- val pinger: ActorRef = ourSystem.actorOf(Player.props)
- val ponger: ActorRef = ourSystem.actorOf(Player.props)
- ponger.tell(Player.Ping(),pinger)
- Thread.sleep(1000)
- ourSystem.terminate()
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement