initial commit
This commit is contained in:
45
broker/main.py
Normal file
45
broker/main.py
Normal 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()
|
||||
Reference in New Issue
Block a user