Spaces:
Build error
Build error
import asyncio | |
import websockets | |
import json | |
from fastapi import FastAPI | |
import logging | |
logging.basicConfig(level=logging.INFO) | |
logger = logging.getLogger(__name__) | |
app = FastAPI() | |
WEBSOCKET_URL = "wss://b917-160-179-178-105.ngrok-free.app/ws" | |
call_count = 0 | |
async def websocket_client(): | |
global call_count | |
while True: | |
try: | |
async with websockets.connect(WEBSOCKET_URL) as websocket: | |
logger.info("WebSocket connection established") | |
while True: | |
call_count += 1 | |
payload = {"count": call_count} | |
await websocket.send(json.dumps(payload)) | |
logger.info(f"Sent: {payload}") | |
response = await websocket.recv() | |
data = json.loads(response) | |
logger.info(f"Received: {data}") | |
await asyncio.sleep(1) # Keep this delay as 1 second between messages | |
except websockets.exceptions.ConnectionClosed: | |
logger.error("WebSocket connection closed. Retrying...") | |
await asyncio.sleep(0.1) # 100ms delay before retrying | |
except Exception as e: | |
logger.error(f"Error: {e}") | |
await asyncio.sleep(0.1) # 100ms delay before retrying | |
async def startup_event(): | |
asyncio.create_task(websocket_client()) | |
async def root(): | |
return {"message": "WebSocket client is running", "calls_made": call_count} |