|
@@ -72,6 +72,27 @@ class anchor_request(BaseModel):
|
|
text_content: str
|
|
text_content: str
|
|
image_urls: List[str]
|
|
image_urls: List[str]
|
|
|
|
|
|
|
|
+class ConnectionManager:
|
|
|
|
+ def __init__(self):
|
|
|
|
+ self.active_connections: List[WebSocket] = []
|
|
|
|
+
|
|
|
|
+ async def connect(self, websocket: WebSocket):
|
|
|
|
+ await websocket.accept()
|
|
|
|
+ self.active_connections.append(websocket)
|
|
|
|
+
|
|
|
|
+ def disconnect(self, websocket: WebSocket):
|
|
|
|
+ self.active_connections.remove(websocket)
|
|
|
|
+
|
|
|
|
+ async def send_personal_message(self, message: str, websocket: WebSocket):
|
|
|
|
+ await websocket.send_text(message)
|
|
|
|
+
|
|
|
|
+ async def broadcast(self, message: str):
|
|
|
|
+ for connection in self.active_connections:
|
|
|
|
+ await connection.send_text(message)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+manager = ConnectionManager()
|
|
|
|
+
|
|
@app.get("/")
|
|
@app.get("/")
|
|
async def root():
|
|
async def root():
|
|
return {"message": "Hello, this is index"}
|
|
return {"message": "Hello, this is index"}
|
|
@@ -100,14 +121,18 @@ async def make_anchor_video_v2(req:request2):
|
|
#return {"https://www.choozmo.com:8888/progress_page"}
|
|
#return {"https://www.choozmo.com:8888/progress_page"}
|
|
return {"msg":"製作影片需要時間,請您耐心等候 稍後可以在www.choozmo.com:8168/"+req.name+".mp4 中觀看"}
|
|
return {"msg":"製作影片需要時間,請您耐心等候 稍後可以在www.choozmo.com:8168/"+req.name+".mp4 中觀看"}
|
|
|
|
|
|
|
|
+@app.websocket("/ws/{client_id}")
|
|
|
|
+async def websocket_endpoint(websocket: WebSocket, client_id: int):
|
|
|
|
+ await manager.connect(websocket)
|
|
|
|
+ try:
|
|
|
|
+ while True:
|
|
|
|
+ data = await websocket.receive_text()
|
|
|
|
+ await manager.send_personal_message(f"You wrote: {data}", websocket)
|
|
|
|
+ await manager.broadcast(f"Client #{client_id} says: {data}")
|
|
|
|
+ except WebSocketDisconnect:
|
|
|
|
+ manager.disconnect(websocket)
|
|
|
|
+ await manager.broadcast(f"Client #{client_id} left the chat")
|
|
|
|
|
|
-@app.websocket("/progress")
|
|
|
|
-async def websocket_endpoint(websocket: WebSocket):
|
|
|
|
- await websocket.accept()
|
|
|
|
- while True:
|
|
|
|
- #print('TEXT RECEIVED:'+websocket.receive_text)
|
|
|
|
- data = await websocket.receive_text()
|
|
|
|
- await websocket.send_text({data})
|
|
|
|
|
|
|
|
|
|
|
|
def notify_group(msg):
|
|
def notify_group(msg):
|