Spaces:
Paused
Paused
| from typing import Union | |
| from fastapi.websockets import WebSocket, WebSocketState | |
| class Accelerator: | |
| ws: Union[WebSocket, None] | |
| def connected(self): return self.ws != None | |
| async def connect(self, ws: WebSocket): | |
| await ws.accept() | |
| self.ws = ws | |
| async def accelerate(self, input): | |
| while ws.client_state == WebSocketState.CONNECTING: pass | |
| if ws.client_state == WebSocketState.CONNECTED: | |
| await self.ws.send_text(input) | |
| return await self.ws.receive_text() | |
| elif ws.client_state == WebSocketState.DISCONNECTED: | |
| ws = None | |