scala - lectura - que es el contexto de intervencion
¿Error al encontrar el contexto de valor? (3)
importar akka.actor
Consulte esta url https://groups.google.com/forum/#!msg/akka-user/4eYJWKWhAe8/TTAIOAI-uaIJ
def join(username: String): scala.concurrent.Future[(Iteratee[JsValue, _], Enumerator[JsValue])] = {
println("friend name in model" + username)
val first = Akka.system.actorOf(Props[ChatRoom2], name = username)
println("this is chat room two default")
}
y cuando uso este val first = context.actorOf(Props[ChatRoom2],name=username)
Estoy usar esto para crear un actor secundario en una sala de chat diferente, pero muestra un contexto de valor de error no encontrado.
No puede acceder al context
del actor desde una clase que no amplíe Actor
. Debes extender Actor
en la clase con método de join
anterior (no solo ChatRoom2)
Cuando utiliza una referencia de system
actor, está creando actores de "nivel superior", mientras que usar context
crea "actores secundarios" de su actor actual. Esto significa que acceder al context
solo tiene sentido desde dentro de un Actor
.
Aquí hay un ejemplo:
val system = ActorSystem("name")
val act = system.actorOf(classOf[SomeActor])
class SomeActor extends Actor {
def receive = {
case _ => val child = context.actorOf(...)
}
}
En este ejemplo, "acto" es un actor de "nivel superior", y "niño" es un hijo de "acto", porque fue creado por el contexto del acto.
¡Espero que esto ayude!
Para obtener más ayuda, consulte los documentos: http://doc.akka.io/docs/akka/2.3.1/scala/actors.html