From 1e25ef7a98a0e0bf24be9e8e28a189f8783250e3 Mon Sep 17 00:00:00 2001 From: Bel LaPointe <153096461+breel-render@users.noreply.github.com> Date: Sun, 15 Dec 2024 08:51:12 -0700 Subject: [PATCH] ws only computes game state if events since last time --- cmd/server/ws.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/cmd/server/ws.go b/cmd/server/ws.go index 2ae96a3..a9f6f5b 100644 --- a/cmd/server/ws.go +++ b/cmd/server/ws.go @@ -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