50 lines
1.5 KiB
Python
50 lines
1.5 KiB
Python
|
|
#!/usr/bin/env python3
|
|||
|
|
"""
|
|||
|
|
测试WebSocket连接的简单脚本
|
|||
|
|
"""
|
|||
|
|
import asyncio
|
|||
|
|
import websockets
|
|||
|
|
import json
|
|||
|
|
import sys
|
|||
|
|
|
|||
|
|
async def test_websocket():
|
|||
|
|
"""测试WebSocket连接"""
|
|||
|
|
uri = "ws://localhost:8000/socket.io/?role=streamer&id=1&token=test"
|
|||
|
|
|
|||
|
|
try:
|
|||
|
|
print(f"尝试连接到: {uri}")
|
|||
|
|
async with websockets.connect(uri) as websocket:
|
|||
|
|
print("✅ WebSocket连接成功!")
|
|||
|
|
|
|||
|
|
# 发送测试消息
|
|||
|
|
test_message = {
|
|||
|
|
"type": "ping",
|
|||
|
|
"data": "test"
|
|||
|
|
}
|
|||
|
|
await websocket.send(json.dumps(test_message))
|
|||
|
|
print(f"📤 发送消息: {test_message}")
|
|||
|
|
|
|||
|
|
# 接收消息(超时5秒)
|
|||
|
|
try:
|
|||
|
|
response = await asyncio.wait_for(websocket.recv(), timeout=5.0)
|
|||
|
|
print(f"📥 收到消息: {response}")
|
|||
|
|
except asyncio.TimeoutError:
|
|||
|
|
print("⏱️ 5秒内未收到消息(这是正常的,后端可能会广播消息)")
|
|||
|
|
|
|||
|
|
print("\n✅ WebSocket测试通过!")
|
|||
|
|
return True
|
|||
|
|
|
|||
|
|
except websockets.exceptions.InvalidURI as e:
|
|||
|
|
print(f"❌ 无效的URI: {e}")
|
|||
|
|
return False
|
|||
|
|
except websockets.exceptions.ConnectionRefused as e:
|
|||
|
|
print(f"❌ 连接被拒绝,请确保服务器正在运行: {e}")
|
|||
|
|
return False
|
|||
|
|
except Exception as e:
|
|||
|
|
print(f"❌ 连接错误: {type(e).__name__}: {e}")
|
|||
|
|
return False
|
|||
|
|
|
|||
|
|
if __name__ == "__main__":
|
|||
|
|
result = asyncio.run(test_websocket())
|
|||
|
|
sys.exit(0 if result else 1)
|