From: Christian Heller Date: Mon, 9 Nov 2020 21:45:51 +0000 (+0100) Subject: Make curses client PING. X-Git-Url: https://plomlompom.com/repos/%7B%7Bprefix%7D%7D/process?a=commitdiff_plain;h=621e33482140c399f883b6e858f45e9c04471729;p=plomrogue2-experiments Make curses client PING. --- diff --git a/new2/plomrogue/io_websocket.py b/new2/plomrogue/io_websocket.py index ea16597..0a74f4e 100644 --- a/new2/plomrogue/io_websocket.py +++ b/new2/plomrogue/io_websocket.py @@ -13,7 +13,7 @@ class PlomWebSocket(WebSocket): if self.server.clients[connection_id] == self: self.server.queue.put((connection_id, self.data)) break - + def handleConnected(self): import uuid print('CONNECTION FROM:', self.address) diff --git a/new2/rogue_chat_curses.py b/new2/rogue_chat_curses.py index ee2cae8..15d0053 100755 --- a/new2/rogue_chat_curses.py +++ b/new2/rogue_chat_curses.py @@ -139,8 +139,13 @@ def cmd_ANNOTATION(game, position, msg): game.tui.do_refresh = True cmd_ANNOTATION.argtypes = 'yx_tuple:nonneg string' +def cmd_PONG(game): + pass +cmd_PONG.argtypes = '' + class Game(GameBase): commands = {'LOGIN_OK': cmd_LOGIN_OK, + 'PONG': cmd_PONG, 'CHAT': cmd_CHAT, 'PLAYER_ID': cmd_PLAYER_ID, 'TURN': cmd_TURN, @@ -296,6 +301,7 @@ class TUI: def loop(self, stdscr): import time + import datetime def safe_addstr(y, x, line): if y < self.size.y - 1 or x + len(line) < self.size.x: @@ -492,7 +498,13 @@ class TUI: self.input_ = '' input_prompt = '> ' connect() + last_ping = datetime.datetime.now() + interval = datetime.timedelta(seconds=30) while True: + now = datetime.datetime.now() + if now - last_ping > interval: + self.send('PING') + last_ping = now if self.do_refresh: draw_screen() self.do_refresh = False