websocket通信,服务端每秒一条消息,客户端只能及时接收到第一条消息,剩余的要等服务端发送完所有信息才能接收到,这还是为什么?
服务端代码
import websockets
async def handle_message(websocket, path):
async for message in websocket:
# 在这里处理收到的消息
print(f"Received message: {message}")
# 发送回复消息
reply = f"Replying to: {message}"
for i in range(10):
await websocket.send(reply)
time.sleep(1)
print(f"Sent reply: {reply}", datetime.now())
# 创建 WebSocket 服务端
start_server = websockets.serve(handle_message, '0.0.0.0', 8765)
# 启动事件循环
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
客户端代码
async def connect_websocket():
uri = "ws://localhost:8765" # WebSocket 服务器地址
async with websockets.connect(uri) as websocket:
print("WebSocket connection opened")
await websocket.send("asd")
while True:
message = await websocket.recv()
print("Received message:", message, datetime.now())
if not websocket.open:
break
# 运行 WebSocket 客户端
asyncio.get_event_loop().run_until_complete(connect_websocket())
日志打印