Browse Source

ws transport / multi mesh

main
gsd 4 months ago
parent
commit
bd407df27a
  1. 16
      service.py
  2. 7
      transport_ws.py
  3. 2
      ui/srv.conf

16
service.py

@ -130,12 +130,19 @@ class MeshApi(MeshArgsParse):
super().__init__(args)
self.app = FastAPI(lifespan=self.lifespan)
self.tasks = []
self.listeners = [] #[{"func": func, "args":[]}]
from authManager import AuthManager
self.authManager = AuthManager(args)
@asynccontextmanager
async def lifespan(self, app: FastAPI):
logger.info("web started, now create bg tasks")
logger.info("web started")
logger.info("create mesh listeners")
for listener in self.listeners:
asyncio.create_task(listener["func"](*listener["args"]))
logger.info("now create bg tasks")
for task in self.tasks:
asyncio.create_task(task())
yield
@ -244,11 +251,10 @@ class MeshCenter(MeshMultiListener, MeshApi, MongoDriver, MeshArgsParse):
traceback.print_exc()
def buildBackgroundTasks(self):
#input queue
#input queue #[{"func": func, "args":[]}]
for device in self.devices:
async def mL():
await self.meshListener(device, self.queue)
self.tasks.append(mL)
logger.debug("Append mesh listener", device)
self.listeners.append({"func": self.meshListener, "args":[device, self.queue]})
#output
async def handlerTask():

7
transport_ws.py

@ -1,4 +1,4 @@
from fastapi import FastAPI, WebSocket, WebSocketDisconnect
from fastapi import FastAPI, WebSocket, WebSocketDisconnect, Query
from threading import Thread
import uvicorn
import asyncio
@ -13,8 +13,9 @@ class WSTransport:
self.thread = None
self.app = FastAPI()
@self.app.websocket(self.path + "/{token}")
async def websocket_endpoint(*, websocket: WebSocket, token: str):
@self.app.websocket(self.path)
async def websocket_endpoint(*, websocket: WebSocket, token: str = Query("")):
if token != self.token:
return

2
ui/srv.conf

@ -17,7 +17,7 @@ server {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /ws/0/ {
location /ws/0 {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Upgrade $http_upgrade;

Loading…
Cancel
Save