From 7e504f13b1abdcbc4047a21415fded4d9639c8b3 Mon Sep 17 00:00:00 2001 From: qiangyanwen <508737091@qq.com> Date: Tue, 6 Dec 2022 14:59:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0websocket=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logs/automation_info.log | 28 ++++++++++++++++++++++++++++ utils/websocket_manager.py | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 utils/websocket_manager.py diff --git a/logs/automation_info.log b/logs/automation_info.log index 74d69a5..b0c5cd7 100644 --- a/logs/automation_info.log +++ b/logs/automation_info.log @@ -78,3 +78,31 @@ 2022-12-06 11:46:42 | MainThread:4530525632 | create_app:app:39 - INFO - Server address http://192.168.9.93:8000 2022-12-06 11:46:42 | MainThread:4530525632 | create_app:app:40 - INFO - Api doc address http://192.168.9.93:8000/docs 2022-12-06 11:46:42 | MainThread:4530525632 | create_app:app:41 - INFO - Api redoc address http://192.168.9.93:8000/redoc +2022-12-06 13:46:33 | MainThread:4458747328 | :__init__:16 - INFO - start the automation service development environment +2022-12-06 13:46:33 | MainThread:4458747328 | :__init__:22 - INFO - loading environment configuration file +2022-12-06 13:46:33 | MainThread:4458747328 | create_app:app:28 - INFO - loading application configuration +2022-12-06 13:46:33 | MainThread:4458747328 | create_app:app:29 - INFO - create FastApi app object +2022-12-06 13:46:33 | MainThread:4458747328 | loading_router_middleware:app:16 - INFO - Adding a New route success +2022-12-06 13:46:33 | MainThread:4458747328 | loading_router_middleware:app:24 - INFO - loading middleware success +2022-12-06 13:46:33 | MainThread:4458747328 | create_app:app:38 - INFO - Application started successfully:CORSMiddleware +2022-12-06 13:46:33 | MainThread:4458747328 | create_app:app:39 - INFO - Server address http://192.168.9.93:8000 +2022-12-06 13:46:33 | MainThread:4458747328 | create_app:app:40 - INFO - Api doc address http://192.168.9.93:8000/docs +2022-12-06 13:46:33 | MainThread:4458747328 | create_app:app:41 - INFO - Api redoc address http://192.168.9.93:8000/redoc +2022-12-06 13:46:33 | MainThread:4801131968 | :__init__:16 - INFO - start the automation service development environment +2022-12-06 13:46:33 | MainThread:4801131968 | :__init__:22 - INFO - loading environment configuration file +2022-12-06 13:46:34 | MainThread:4801131968 | create_app:app:28 - INFO - loading application configuration +2022-12-06 13:46:34 | MainThread:4801131968 | create_app:app:29 - INFO - create FastApi app object +2022-12-06 13:46:34 | MainThread:4801131968 | loading_router_middleware:app:16 - INFO - Adding a New route success +2022-12-06 13:46:34 | MainThread:4801131968 | loading_router_middleware:app:24 - INFO - loading middleware success +2022-12-06 13:46:34 | MainThread:4801131968 | create_app:app:38 - INFO - Application started successfully:CORSMiddleware +2022-12-06 13:46:34 | MainThread:4801131968 | create_app:app:39 - INFO - Server address http://192.168.9.93:8000 +2022-12-06 13:46:34 | MainThread:4801131968 | create_app:app:40 - INFO - Api doc address http://192.168.9.93:8000/docs +2022-12-06 13:46:34 | MainThread:4801131968 | create_app:app:41 - INFO - Api redoc address http://192.168.9.93:8000/redoc +2022-12-06 13:46:34 | MainThread:4801131968 | create_app:app:28 - INFO - loading application configuration +2022-12-06 13:46:34 | MainThread:4801131968 | create_app:app:29 - INFO - create FastApi app object +2022-12-06 13:46:34 | MainThread:4801131968 | loading_router_middleware:app:16 - INFO - Adding a New route success +2022-12-06 13:46:34 | MainThread:4801131968 | loading_router_middleware:app:24 - INFO - loading middleware success +2022-12-06 13:46:34 | MainThread:4801131968 | create_app:app:38 - INFO - Application started successfully:CORSMiddleware +2022-12-06 13:46:34 | MainThread:4801131968 | create_app:app:39 - INFO - Server address http://192.168.9.93:8000 +2022-12-06 13:46:34 | MainThread:4801131968 | create_app:app:40 - INFO - Api doc address http://192.168.9.93:8000/docs +2022-12-06 13:46:34 | MainThread:4801131968 | create_app:app:41 - INFO - Api redoc address http://192.168.9.93:8000/redoc diff --git a/utils/websocket_manager.py b/utils/websocket_manager.py new file mode 100644 index 0000000..2d81dd0 --- /dev/null +++ b/utils/websocket_manager.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- + +""" +------------------------------------------------- + File Name: websocket_manager + Description : + Author : qiangyanwen + date: 2022/12/6 +------------------------------------------------- +""" +from fastapi import WebSocket +from typing import List + + +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_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()