Spaces:
Build error
Build error
File size: 1,495 Bytes
9f26e80 77006af ea9f7e5 9f26e80 d0443bf accee64 ea9f7e5 77006af ea9f7e5 77006af c85f84a 77006af c85f84a 77006af c85f84a 77006af 9f26e80 77006af |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
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
@app.on_event("startup")
async def startup_event():
asyncio.create_task(websocket_client())
@app.get("/")
async def root():
return {"message": "WebSocket client is running", "calls_made": call_count} |