Spaces:
BG5
/
Running

BG5 commited on
Commit
d8ef23e
·
verified ·
1 Parent(s): 98b3cf8

Update fun.py

Browse files
Files changed (1) hide show
  1. fun.py +10 -18
fun.py CHANGED
@@ -38,33 +38,25 @@ async def proxy(request: Request, path: str):
38
  async def websocket_proxy(websocket: WebSocket, path: str):
39
  await websocket.accept()
40
  target_url = f"{TARGET_WS_BASE}/{path}"
41
- logger.info(f"Forwarding WebSocket to: {target_url}")
42
 
43
  try:
44
  async with websockets.connect(target_url) as target_ws:
45
- async def forward_client_to_server():
46
  while True:
47
- message = await websocket.receive()
48
- if message["type"] == "websocket.receive.text":
49
- await target_ws.send(message["text"])
50
- logger.info(f"Sent to Chrome: {message['text'][:100]}")
51
-
52
- async def forward_server_to_client():
53
- while True:
54
- message = await target_ws.recv()
55
- if isinstance(message, str):
56
- await websocket.send_text(message)
57
- logger.info(f"Received from Chrome: {message[:100]}")
58
- elif isinstance(message, bytes):
59
- await websocket.send_bytes(message)
60
 
61
  await asyncio.gather(
62
- forward_client_to_server(),
63
- forward_server_to_client()
64
  )
65
  except Exception as e:
66
  logger.error(f"Error: {e}")
67
- await websocket.close()
68
 
69
  if __name__ == "__main__":
70
  uvicorn.run("fun:app", host="0.0.0.0", port=8000, reload=True)
 
38
  async def websocket_proxy(websocket: WebSocket, path: str):
39
  await websocket.accept()
40
  target_url = f"{TARGET_WS_BASE}/{path}"
41
+ logger.info(f"Forwarding to: {target_url}")
42
 
43
  try:
44
  async with websockets.connect(target_url) as target_ws:
45
+ async def forward(from_ws, to_ws, direction):
46
  while True:
47
+ data = await from_ws.receive()
48
+ logger.info(f"{direction} RAW DATA: {data}") # 打印原始数据
49
+ if isinstance(data, str):
50
+ await to_ws.send(data)
51
+ else:
52
+ await to_ws.send(data.bytes if hasattr(data, 'bytes') else data)
 
 
 
 
 
 
 
53
 
54
  await asyncio.gather(
55
+ forward(websocket, target_ws, "CLIENT->CHROME"),
56
+ forward(target_ws, websocket, "CHROME->CLIENT")
57
  )
58
  except Exception as e:
59
  logger.error(f"Error: {e}")
 
60
 
61
  if __name__ == "__main__":
62
  uvicorn.run("fun:app", host="0.0.0.0", port=8000, reload=True)