准备WebSocket服务端:需有一个运行中的WebSocket服务(如用FastAPI、Node.js等编写的本地或远程服务)。若没有现成服务,可参考以下步骤快速创建一个FastAPI WebSocket服务(Ubuntu环境):
python3 -m venv venv
source venv/bin/activate
pip install fastapi uvicorn
cat > main.py << 'EOF'
from fastapi import FastAPI, WebSocket, WebSocketDisconnect
from fastapi.responses import HTMLResponse
app = FastAPI()
@app.get("/")
async def get():
return HTMLResponse("""
<!DOCTYPE html>
<html>
<body>
<h1>WebSocket测试页面</h1>
<form onsubmit="sendMessage(event)">
<input type="text" id="messageText" autocomplete="off"/>
<button>发送</button>
</form>
<ul id='messages'></ul>
<script>
var ws = new WebSocket("ws://localhost:8000/ws");
ws.onmessage = function(event) {
var messages = document.getElementById('messages');
var message = document.createElement('li');
message.textContent = event.data;
messages.appendChild(message);
};
function sendMessage(event) {
var input = document.getElementById("messageText");
ws.send(input.value);
input.value = '';
event.preventDefault();
}
</script>
</body>
</html>
""")
@app.websocket("/ws")
async def websocket_endpoint(websocket: WebSocket):
await websocket.accept()
try:
while True:
data = await websocket.receive_text()
await websocket.send_text(f"服务器收到: {data}")
except WebSocketDisconnect:
print("客户端断开连接")
EOF
uvicorn main:app --reload
服务启动后,WebSocket接口将监听ws://localhost:8000/ws。