review socket broadcasting

pull/83/head
Thibault Duplessis 2013-05-12 12:27:28 -03:00
parent 2dc4ab453f
commit 7ba1282157
10 changed files with 18 additions and 17 deletions

View File

@ -3,7 +3,7 @@ package lila.app
import akka.actor._
import com.typesafe.config.Config
final class Env(config: Config, system: ActorSystem, isServer: Boolean) {
final class Env(config: Config, system: ActorSystem) {
val CliUsername = config getString "cli.username"
@ -35,8 +35,7 @@ object Env {
lazy val current = "[boot] app" describes new Env(
config = lila.common.PlayApp.loadConfig,
system = lila.common.PlayApp.system,
isServer = lila.common.PlayApp.isServer)
system = lila.common.PlayApp.system)
def api = lila.api.Env.current
def db = lila.db.Env.current

View File

@ -6,7 +6,7 @@ import akka.pattern.ask
import lila.app._
import lila.monitor.actorApi._
import lila.socket.actorApi.GetNbMembers
import lila.hub.actorApi.GetNbMembers
import makeTimeout.short
object Monitor extends LilaController {

View File

@ -24,6 +24,10 @@ final class Broadcast(actors: List[ActorRef])(implicit timeout: Timeout) extends
def receive = {
case GetNbMembers askAll(GetNbMembers).mapTo[List[Int]] foreach { nbs
router ! NbMembers(nbs.sum)
}
case Ask(msg) askAll(msg) pipeTo sender
case msg router ! msg

View File

@ -17,6 +17,9 @@ case class Ask(msg: Any)
case object GetUserIds
case object GetNbMembers
case class NbMembers(nb: Int)
package captcha {
case object AnyCaptcha
case class GetCaptcha(id: String)

View File

@ -1,7 +1,8 @@
package lila.monitor
import actorApi._
import lila.socket.actorApi.{ GetNbMembers, GetNbSockets }
import lila.socket.actorApi.GetNbSockets
import lila.hub.actorApi.GetNbMembers
import lila.hub.actorApi.monitor._
import akka.actor._

View File

@ -2,7 +2,7 @@ package lila.round
import actorApi._
import lila.socket.actorApi._
import lila.hub.actorApi.GetUserIds
import lila.hub.actorApi.{ GetNbMembers, NbMembers, GetUserIds }
import akka.actor._
import akka.pattern.{ ask, pipe }
@ -58,8 +58,6 @@ private[round] final class SocketHub(
_ ? msg pipeTo sender
}
case GetNbSockets sender ! sockets.size
case GetNbMembers Future.traverse(sockets.values) { socket
(socket ? GetNbMembers).mapTo[Int]
} map (_.sum) pipeTo sender

View File

@ -6,7 +6,7 @@ import akka.actor.ActorSystem
import akka.pattern.{ ask, pipe }
import lila.common.PimpedConfig._
import lila.hub.actorApi.Ask
import lila.hub.actorApi.GetNbMembers
import actorApi._
import makeTimeout.short
@ -19,10 +19,8 @@ final class Env(
hub.socket.hub -> actorApi.Broom
}
scheduler.effect(2 seconds, "socket hub: refresh") {
hub.socket.hub ? Ask(GetNbMembers) mapTo manifest[Seq[Int]] map { nbs
NbMembers(nbs.sum)
} pipeTo hub.socket.hub
scheduler.message(2 seconds) {
hub.socket.hub -> GetNbMembers
}
}

View File

@ -1,7 +1,7 @@
package lila.socket
import actorApi._
import lila.hub.actorApi.GetUserIds
import lila.hub.actorApi.{ GetUserIds, GetNbMembers, NbMembers }
import lila.memo.ExpireSetMemo
import akka.actor._

View File

@ -7,8 +7,6 @@ case class Connected[M <: SocketMember](
enumerator: JsEnumerator,
member: M)
case object Close
case object GetNbMembers
case class NbMembers(nb: Int)
case class Ping(uid: String)
case class PingVersion(uid: String, version: Int)
case object Broom

View File

@ -2,7 +2,7 @@ package lila.tournament
import lila.socket.History
import lila.socket.actorApi.{ Connected _, _ }
import lila.hub.actorApi.GetUserIds
import lila.hub.actorApi.{ GetNbMembers, NbMembers, GetUserIds }
import actorApi._
import makeTimeout.short