2012-04-06 3 views
3

Pour l'apprentissage j'essaie d'implémenter une application de jeu simple qui obtient des données d'un acteur distant. Le code pour l'acteur est le suivant:Jouer cadre 2.0 - deadLetters au lieu d'un acteur

import akka.actor.{Props, ActorSystem, Actor} 

class NumbersServer extends Actor { 
    var number = 0 
    protected def receive = { 
    case 'next => { 
     number += 1 
     number 
    } 
    case 'reset => number = 0 
    case 'exit => context.stop(self) 
    case 'get => sender ! number 
    } 
} 

object Server { 
    def main(args: Array[String]) { 
    val system = ActorSystem("ServerSystem") 
    val server = system.actorOf(Props[NumbersServer], "server") 
    } 
} 

Je l'empaquette dans un pot et le lance à partir de la ligne de commande. Si j'essaye d'envoyer des messages à cet acteur à partir d'une console Scala ouverte à partir d'une autre fenêtre, tout fonctionne correctement. Maintenant, je veux obtenir l'acteur de la structure de jeu. Dans l'objet Application je définir la méthode suivante:

def numbers = Action { 
    Ok(views.html.numbers(Client.actor.path.name)) 
} 

Puis dans le package models I définir l'objet du client:

object Client { 
    import play.api.Play.current 
    val actor = Akka.system.actorFor("akka://[email protected]:2552/user/server") 
} 

Le fichier numbers.html.scala:

@(message: String) 

@main("Header") { 
    <h1>@message</h1> 
} 

donc je pense que quand je vais à 127.0.0.1:9000/numbers, je voudrais obtenir une page avec le chemin de l'acteur serveur. Au lieu de cela, je reçois <h1>deadLetters</h1>. Qu'est-ce que je fais de mal et comment cela devrait-il être fait correctement?

+0

Avez-vous avez activé l'accès distant aux deux extrémités? –

+0

@ViktorKlang: J'ai essayé d'activer le remoting dans le jeu d'une manière analogue à l'akka simple, mais il n'y a pas de paquet akka-remote, donc je viens d'avoir 'java.lang.ClassNotFoundException: akka.remote.RemoteActorRefProvider' et je ne sais pas quoi d'autre faire. –

+0

Akka docs sont plutôt bons: http://doc.akka.io/docs/akka/2.0/scala/remoting.html –

Répondre

Questions connexes