File size: 568 Bytes
233feb1
8fc4ed2
233feb1
 
 
 
8fc4ed2
 
233feb1
 
 
 
 
8fc4ed2
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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