feat: Update Dockerfile for multi-platform support and add nginx configuration
This commit is contained in:
@@ -21,6 +21,8 @@ object PodManager {
|
||||
private val userSession: mutable.Map[User, String] = mutable.Map()
|
||||
private val injector: Injector = Guice.createInjector(KnockOutWebConfigurationModule())
|
||||
|
||||
private[logic] var redis: Option[Gateway] = None
|
||||
|
||||
def createGame(
|
||||
host: User,
|
||||
name: String,
|
||||
@@ -35,7 +37,8 @@ object PodManager {
|
||||
host = host
|
||||
)
|
||||
sessions += (gameLobby.id -> gameLobby)
|
||||
userSession += (host -> gameLobby.id)
|
||||
registerUserToGame(host, gameLobby.id)
|
||||
redis.foreach(gateway => gateway.syncPod())
|
||||
gameLobby
|
||||
}
|
||||
|
||||
@@ -46,6 +49,7 @@ object PodManager {
|
||||
def registerUserToGame(user: User, gameId: String): Boolean = {
|
||||
if (sessions.contains(gameId)) {
|
||||
userSession += (user -> gameId)
|
||||
redis.foreach(gateway => gateway.syncPod())
|
||||
true
|
||||
} else {
|
||||
false
|
||||
@@ -54,6 +58,7 @@ object PodManager {
|
||||
|
||||
def unregisterUserFromGame(user: User): Unit = {
|
||||
userSession.remove(user)
|
||||
redis.foreach(gateway => gateway.redis.invalidateUser(user.id.toString))
|
||||
}
|
||||
|
||||
def identifyGameOfUser(user: User): Option[GameLobby] = {
|
||||
@@ -65,9 +70,12 @@ object PodManager {
|
||||
|
||||
private[logic] def removeGame(gameId: String): Unit = {
|
||||
sessions.remove(gameId)
|
||||
redis.foreach(gateway => gateway.redis.invalidateGame(gameId))
|
||||
// Also remove all user sessions associated with this game
|
||||
userSession.filterInPlace((_, v) => v != gameId)
|
||||
}
|
||||
|
||||
private[logic] def getAllGameIds(): List[String] = sessions.keys.toList
|
||||
private[logic] def allBoundUsers(): List[String] = userSession.keys.map(_.id.toString).toList
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user