Add a new WebSocket event handler to the Python realtime server and corresponding React hook.
Scaffold a WebSocket event handler (Python) and React consumer hook. Accepts $ARGUMENTS as the event name.
/ws-event price_update — create handler for price_update events/ws-event order_notification — create handler for order notificationsParse $ARGUMENTS as the event name (snake_case)
Create Python handler at realtime/handlers/{event_name}.py:
import json
import logging
from datetime import datetime, timezone
from uuid import uuid4
logger = logging.getLogger(__name__)
async def handle_{event_name}(websocket, data: dict) -> None:
"""Handle {event_name} events.
Message format:
Incoming: {"type": "{event_name}", "data": {...}}
Outgoing: {"type": "{event_name}", "data": {...}, "timestamp": "ISO8601", "id": "uuid"}
"""
response = {
"type": "{event_name}",
"data": data,
"timestamp": datetime.now(timezone.utc).isoformat(),
"id": str(uuid4()),
}
await websocket.send(json.dumps(response))
Register the handler in realtime/websocket_server.py:
handlers = {
# ... existing handlers
"{event_name}": handle_{event_name},
}
Create or update React hook in frontend/utils/useWebSocket.ts:
// Type for {event_name} data
interface {EventName}Data {
// Define fields based on the event data shape
}
// In the useWebSocket hook, add handler:
case "{event_name}":
on{EventName}?.(message.data as {EventName}Data);
break;
Create Python test at realtime/tests/test_{event_name}.py:
Create React hook test at frontend/__tests__/useWebSocket.test.ts (or update existing):
Report created/modified files and the message format for documentation