Integrated WS server

This commit is contained in:
Eden Kirin
2023-03-25 17:23:00 +01:00
parent 8971c64713
commit 1b745c756f
8 changed files with 117 additions and 108 deletions

View File

@ -3,15 +3,19 @@ import datetime
import logging
import time
from threading import Thread
from typing import Optional
from hopper.models.player import PlayerList
from hopper.ws_client import ws_send_game_state
from hopper.ws_server import WSServer
from settings import settings
class InactivityWatchdog(Thread):
def __init__(self, players: PlayerList, *args, **kwargs) -> None:
def __init__(
self, players: PlayerList, ws_server: Optional[WSServer] = None, *args, **kwargs
) -> None:
self.players = players
self.ws_server = ws_server
self.stopped = False
super().__init__(*args, **kwargs)
@ -57,8 +61,10 @@ class InactivityWatchdog(Thread):
self.send_game_state()
def send_game_state(self):
if not self.ws_server:
return
logging.info("Sending WS game state")
asyncio.run(ws_send_game_state())
asyncio.run(self.ws_server.send_game_state())
def stop(self) -> None:
self.stopped = True