feat(client.py): redo ClientStatuses adding PENDING and STALE

This commit is contained in:
2026-02-28 23:39:07 +01:00
parent 563de5aa19
commit b1656cdfa9

View File

@@ -6,11 +6,16 @@ from __future__ import annotations
import logging as lg
import socket
from enum import Enum
import time
class ClientStatus(str, Enum):
CONNECTED = "connected"
DISCONNECTED = "disconnected"
"""Enumeration of client connection statuses."""
ONLINE = "online"
PENDING = "pending"
OFFLINE = "offline"
STALE = "stale"
class Client:
@@ -34,7 +39,7 @@ class Client:
self.id: str | None = id
self.last_seen: float = 0.0 # unix timestanp of last inbound message
self.status: ClientStatus = ClientStatus.CONNECTED
self.status: ClientStatus = ClientStatus.PENDING
self.socket: socket.socket = socket
self.addr: tuple[str, int] = addr
@@ -54,5 +59,7 @@ class Client:
self.socket.close()
except Exception as e:
self.logger.error(f"Error closing socket for Client {self}: {e}")
self.status = ClientStatus.DISCONNECTED
self.status = ClientStatus.OFFLINE
self.last_seen = time.time()
self.logger.info(f"Client {self} disconnected.")