From e9a780496f7ce067e0d8d51ce1d62e48c9f2a8d9 Mon Sep 17 00:00:00 2001 From: HsiangNianian Date: Thu, 19 Sep 2024 14:44:33 +0800 Subject: feat(core): Implement Service class and related functionalities Co-authored-by: yuzhe --- hrc/service/websocket/__init__.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 hrc/service/websocket/__init__.py (limited to 'hrc/service/websocket/__init__.py') diff --git a/hrc/service/websocket/__init__.py b/hrc/service/websocket/__init__.py new file mode 100644 index 0000000..3a7f089 --- /dev/null +++ b/hrc/service/websocket/__init__.py @@ -0,0 +1,30 @@ +from typing import Any, Coroutine +from typing_extensions import override +from aiohttp import web, ClientWebSocketResponse + +from hrc.service.utils import WebSocketService +from hrc.event import Event +from hrc.log import logger + +from aiohttp import web + +class WebSocketTestEvent(Event["WebSocketTestEvent"]): + message: str + +class WebSocketTestService(WebSocketService[WebSocketTestEvent, None]): + name: str = "websocket_test_service" + service_type: str = "reverse-ws" + host: str = "127.0.0.1" + port: int = 8765 + url: str = "/" + + @override + async def handle_reverse_ws_response(self, request: web.Request) -> Coroutine[Any, Any, ClientWebSocketResponse]: + event = WebSocketTestEvent( + service=self, + type="message", + message=await request.text() + ) + logger.info(f"Receive {event}") + await self.handle_event(event) + return web.Response() \ No newline at end of file -- cgit v1.2.3-70-g09d2