feat(client.py): redo ClientStatuses adding PENDING and STALE
This commit is contained in:
@@ -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.")
|
||||
|
||||
Reference in New Issue
Block a user