服务端接口编写
from fastapi import FastAPI, WebSocket, APIRouter
app = FastAPI()
router = APIRouter()
@router.post("/items/")
async def create_item(item: Item):
# 处理POST请求的代码
return {"item_name": item.name, "item_id": item.id}
@app.websocket("/ws")
async def websocket_endpoint(websocket: WebSocket):
await websocket.accept()
while True:
data = await websocket.receive_text()
# WebSocket通信的代码
await websocket.send_text(f"Message text was: {data}")
app.include_router(router)
应用端编写
import asyncio
import websockets
async def connect():
uri = "ws://127.0.0.1:8000/ws"
async with websockets.connect(uri) as websocket:
await websocket.send("Hello World")
response = await websocket.recv()
print(response)
# 在 Windows 上,运行 asyncio 程序需要添加以下代码
# asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
# 运行 WebSocket 客户端
asyncio.run(connect())