initial commit

This commit is contained in:
2025-02-28 17:40:39 +05:30
parent 796e995b2b
commit c39726c098
9 changed files with 141 additions and 0 deletions

45
broker/main.py Normal file
View File

@@ -0,0 +1,45 @@
import asyncio
from typing import Dict
from uvicorn import Config, Server
import fastapi
from threading import Thread
from uvicorn.config import LOG_LEVELS
from callSpec import CallPacket
class Broker:
def __init__(self) -> None:
self.runnerQueue = []
self.router = fastapi.APIRouter()
self.router.add_api_websocket_route("/reg", self.registerRunner)
self.router.add_api_route("/cliReq", self.clientRequest, methods=["POST"])
self.taskQueue = asyncio.Queue()
async def registerRunner(self, wsConnection: fastapi.WebSocket):
await wsConnection.accept()
print("started")
while True:
data = await self.taskQueue.get()
# await asyncio.sleep(1)
await wsConnection.send_text(data)
print(await wsConnection.receive())
print(f"left: {self.taskQueue.qsize()}")
async def clientRequest(self, data:CallPacket):
print(data)
# await self.taskQueue.put(name)
def runBroker():
br = Broker()
app = fastapi.FastAPI()
app.include_router(br.router)
serverConf = Config(app = app, host="0.0.0.0", port=7732, log_level=LOG_LEVELS["trace"], ws_ping_interval=10, ws_ping_timeout=None)
server = Server(config=serverConf)
server.run()
runBroker()