scala akka期货在游戏框架中与安全的社交

时间:2014-12-16 15:32:34

标签: scala playframework-2.0 future securesocial

我正在使用安全社交和akka通过使用播放框架工作2.3的网络套接字向网络客户端发送消息 的WebSocket

 def feedWS = WebSocket.tryAccept[JsValue] { implicit request =>
  SecureSocial.currentUser[PDUser].map { 
  maybeUser => maybeUser match {
    case Some(user) =>
      Right(Feed.start(user.id))
    case None => {
      Left(Redirect("/login"))
    }
  }
 }

但地图会返回未来,Feed.start也会返回未来。就像是 对象服务ws并连接到一个泵出消息的actor(演员工作正常)

def start(user: String): Future[(Iteratee[JsValue, _], Enumerator[JsValue])] = {
(actorFor(user) ? connect(user)).map {
  case ConnectedE(enumerator) => {
    val iteratee = Iteratee.foreach[JsValue] { event =>
      val things = FromJson.aList(event)
      actorFor(user) ! Subscribe(things)
    }.map { _ =>
      log.info("Disconnected")
      actorFor(user) ! UnSubscribe
    }
    (iteratee, enumerator)
  }
}
}

如果我确实可以或者需要等待,我该如何撰写? 目前,我有一个未来的未来。

0 个答案:

没有答案