ws only computes game state if events since last time

This commit is contained in:
Bel LaPointe
2024-12-15 08:51:12 -07:00
parent d1c4738796
commit 1e25ef7a98

View File

@@ -90,6 +90,7 @@ func (s *S) serveWS(w http.ResponseWriter, r *http.Request) error {
}
}()
var last time.Time
for {
select {
case <-ctx.Done():
@@ -97,6 +98,13 @@ func (s *S) serveWS(w http.ResponseWriter, r *http.Request) error {
case <-time.After(time.Second * 1):
}
if events, err := s.games.GameEvents(ctx, game, last); err != nil {
return err
} else if len(events) == 0 {
continue
}
last = time.Now()
gameState, err := s.games.GameState(ctx, game)
if err != nil {
return err