review socket broadcasting
parent
2dc4ab453f
commit
7ba1282157
|
@ -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
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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._
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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._
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue