Integrated WS server
This commit is contained in:
@ -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
|
||||
|
||||
Reference in New Issue
Block a user