fix(polling): Improve polling mechanism and delay handling (#60)
Reviewed-on: #60
This commit is contained in:
@@ -2,11 +2,12 @@ package components
|
||||
|
||||
import de.knockoutwhist.components.DefaultConfiguration
|
||||
import de.knockoutwhist.ui.UI
|
||||
import de.knockoutwhist.utils.DelayHandler
|
||||
import de.knockoutwhist.utils.events.EventListener
|
||||
|
||||
class WebApplicationConfiguration extends DefaultConfiguration {
|
||||
|
||||
override def uis: Set[UI] = Set()
|
||||
override def listener: Set[EventListener] = Set()
|
||||
override def listener: Set[EventListener] = Set(DelayHandler)
|
||||
|
||||
}
|
||||
|
||||
@@ -59,7 +59,6 @@ class IngameController @Inject() (
|
||||
case Some(g) =>
|
||||
val results = Try {
|
||||
returnInnerHTML(g, request.user)
|
||||
|
||||
}
|
||||
if (results.isSuccess) {
|
||||
Ok(views.html.main("In-Game - Knockout Whist")(results.get))
|
||||
@@ -67,7 +66,7 @@ class IngameController @Inject() (
|
||||
InternalServerError(results.failed.get.getMessage)
|
||||
}
|
||||
case None =>
|
||||
NotFound("Game not found")
|
||||
Redirect(routes.MainMenuController.mainMenu())
|
||||
}
|
||||
}
|
||||
def startGame(gameId: String): Action[AnyContent] = authAction { implicit request: AuthenticatedRequest[AnyContent] =>
|
||||
|
||||
@@ -78,7 +78,8 @@ class PollingController @Inject() (
|
||||
"name" -> u.name,
|
||||
"id" -> u.id,
|
||||
"self" -> (u.id == userSession.id)
|
||||
))
|
||||
)),
|
||||
"maxPlayers" -> game.maxPlayers
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -119,15 +119,6 @@ class GameLobby private(
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
waitingPromises.keys.foreach { playerId =>
|
||||
val queue = eventsPerPlayer(playerId)
|
||||
if (queue.nonEmpty) {
|
||||
val promise = waitingPromises(playerId)
|
||||
promise.success(queue.dequeue())
|
||||
waitingPromises.remove(playerId)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="p-3 text-center fs-4">Playeramount: @gamelobby.getPlayers.size / @gamelobby.maxPlayers</div>
|
||||
<div class="p-3 text-center fs-4" id="playerAmount">Playeramount: @gamelobby.getPlayers.size / @gamelobby.maxPlayers</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-center align-items-center flex-grow-1">
|
||||
|
||||
Reference in New Issue
Block a user