#!/usr/bin/env python3 """Test: send chunked base64 to WS, check if server receives all chunks.""" import asyncio, json, websockets, base64, os, sys # Generate fake audio — random bytes, base64 encoded fake_audio = base64.b64encode(os.urandom(40000)).decode() # ~53KB base64 CHUNK = 14000 total = (len(fake_audio) + CHUNK - 1) // CHUNK async def test(): uri = "wss://proxy.kube5s.ru/ws" print(f"Connecting to {uri}...") async with websockets.connect(uri) as ws: print(f"Connected. Sending {total} chunks of {CHUNK} chars each (total b64: {len(fake_audio)} chars)...") for i in range(total): chunk = fake_audio[i*CHUNK:(i+1)*CHUNK] msg = json.dumps({"c": i, "n": total, "t": "test", "b": chunk, "m": "audio/webm"}) await ws.send(msg) print(f" chunk {i+1}/{total} sent ({len(chunk)} chars)") await asyncio.sleep(0.15) # 150ms между чанками — чтобы DPI не дрочил # Final await asyncio.sleep(0.15) await ws.send(json.dumps({"c": -1})) print(" final sent, waiting for response...") try: resp = await asyncio.wait_for(ws.recv(), timeout=30) data = json.loads(resp) print(f"Response: {data}") except asyncio.TimeoutError: print("TIMEOUT — no response") asyncio.run(test())