ws only computes game state if events since last time

main
Bel LaPointe 2024-12-15 08:51:12 -07:00
parent d1c4738796
commit 1e25ef7a98
1 changed files with 8 additions and 0 deletions

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