Types of messages in the protocol
HANDSHAKE: Any = 'handshake'
AUTHENTICATION: Any = 'auth'
DATA: Any = 'data'
COMMAND: Any = 'command'
EVENT: Any = 'event'
ERROR: Any = 'error'
PING: Any = 'ping'
PONG: Any = 'pong'
DISCONNECT: Any = 'disconnect'
No methods defined.
Types of network users
SERVER: Any = 'server'
CLIENT: Any = 'client'
HOST: Any = 'host'
No methods defined.
Standard message format for network communication
message_id: str = None
message_type: MessageType = None
sender_id: str = None
sender_type: UserType = None
timestamp: float = None
payload: Optional[Any] = None
target: Optional[str] = None
def to_dict(self: Any) -> Dict[str, Any]
def from_dict(cls: Any, data: Dict[str, Any]) -> 'NetworkMessage'
Client for connecting to network server
def __init__(self: Any, client_id: Optional[str] = None) -> Any
def connect(self: Any, host: str, port: int, timeout: int = 5) -> bool
def disconnect(self: Any) -> None
def send(self: Any, message_type: MessageType, payload: Any = None, target: Optional[str] = None) -> bool
def _send_raw(self: Any, data: Dict[str, Any]) -> bool
def _receive_loop(self: Any) -> None
def _handle_message(self: Any, data: Dict[str, Any]) -> None
def _ping_loop(self: Any) -> None
def _send_pong(self: Any, ping_message_id: str) -> None
def register_callback(self: Any, message_type: MessageType, callback: Callable) -> None
def get_message(self: Any, timeout: Optional[float] = None) -> Optional[NetworkMessage]
def __enter__(self: Any) -> Any
def __exit__(self: Any, exc_type: Any, exc_val: Any, exc_tb: Any) -> Any
Server for handling multiple client connections
def __init__(self: Any, host: str = '0.0.0.0', port: int = 4723, max_clients: int = 10) -> Any
def start(self: Any) -> bool
def stop(self: Any) -> None
def _accept_connections(self: Any) -> None
def _handle_client(self: Any, client_id: str, client_socket: socket.socket) -> None
def _process_client_message(self: Any, client_id: str, data: Dict[str, Any]) -> None
def _handle_auth(self: Any, client_id: str, payload: Any) -> None
def _send_pong(self: Any, client_id: str, ping_message: NetworkMessage) -> None
def _send_to_client(self: Any, client_id: str, data: Dict[str, Any]) -> bool
def broadcast(self: Any, data: Dict[str, Any], exclude: Optional[List[str]] = None) -> int
def _send_error(self: Any, client_id: str, message: str) -> None
def _disconnect_client(self: Any, client_id: str, send_notification: bool = True) -> None
def get_client_count(self: Any) -> int
def get_client_ids(self: Any) -> List[str]
def register_callback(self: Any, message_type: MessageType, callback: Callable) -> None
def get_message(self: Any, timeout: Optional[float] = None) -> Optional[tuple]
def enable_auth(self: Any, tokens: List[str]) -> None
def generate_auth_token(self: Any) -> str
def __enter__(self: Any) -> Any
def __exit__(self: Any, exc_type: Any, exc_val: Any, exc_tb: Any) -> Any
Host class that runs a server in thread and connects as a client
def __init__(self: Any, host: str = '127.0.0.1', port: int = 4723, max_clients: int = 10) -> Any
def start(self: Any) -> bool
def _run_server(self: Any) -> Any
def stop(self: Any) -> Any
def send_as_host(self: Any, message_type: MessageType, payload: Any = None, target: Optional[str] = None) -> bool
def broadcast_as_server(self: Any, data: Dict[str, Any], exclude: Optional[List[str]] = None) -> int
def send_to_client(self: Any, client_id: str, message_type: MessageType, payload: Any = None) -> bool
def get_message(self: Any, timeout: Optional[float] = None) -> Optional[tuple]
def get_client_count(self: Any) -> int
def get_client_ids(self: Any) -> List[str]
def __enter__(self: Any) -> Any
def __exit__(self: Any, exc_type: Any, exc_val: Any, exc_tb: Any) -> Any
def generate_id() -> str
Generate unique ID for clients/messages
def validate_port(port: int) -> bool
Validate port number
def safe_json_dumps(data: Any) -> bytes
Safely serialize data to JSON bytes
def safe_json_loads(data: bytes) -> Any
Safely deserialize JSON bytes