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")
}
当我使用此val first = context.actorOf(Props[ChatRoom2],name=username)
我使用它在另一个聊天室中创建一个子actor,但它显示错误找不到值上下文。
答案 0 :(得分:3)
您无法从未扩展context
的类访问角色Actor
。您必须在上面使用Actor
方法的课程中扩展join
(不仅是ChatRoom2)
答案 1 :(得分:3)
当您使用actor system
引用时,您将创建“顶级”actor,而使用context
创建当前actor的“child actor”。这意味着访问context
仅在Actor
内有意义。
以下是一个例子:
val system = ActorSystem("name")
val act = system.actorOf(classOf[SomeActor])
class SomeActor extends Actor {
def receive = {
case _ => val child = context.actorOf(...)
}
}
在这个例子中,“act”是一个“顶级”actor,而“child”是“act”的孩子,因为它是由act的上下文创建的。
我希望这有帮助!
如需更多帮助,请参阅文档:http://doc.akka.io/docs/akka/2.3.1/scala/actors.html
答案 2 :(得分:1)
导入akka.actor
参考此网址 https://groups.google.com/forum/#!msg/akka-user/4eYJWKWhAe8/TTAIOAI-uaIJ