WebSocket 是一种网络通信协议,它允许在单个 TCP 连接上进行全双工通信,与 HTTP 协议不同,WebSocket 协议在建立连接后,服务器可以主动向客户端推送数据,而不需要客户端再发起请求,这种特性使得 WebSocket 非常适合用于实时通信,例如在线游戏、聊天应用等场景。
下面是一个简单的 WebSocket 服务器和客户端的 Python 代码示例:
### WebSocket 服务器
import asyncio import websockets async def echo(websocket, path): async for message in websocket: await websocket.send(f"Echo: {message}") start_server = websockets.serve(echo, "localhost", 8765) asyncio.get_event_loop().run_until_complete(start_server) asyncio.get_event_loop().run_forever()
这个服务器会监听本地的 8765 端口,当有客户端连接时,它会将收到的消息原样返回。
### WebSocket 客户端
import asyncio import websockets async def hello(): uri = "ws://localhost:8765" async with websockets.connect(uri) as websocket: await websocket.send("Hello, WebSocket!") response = await websocket.recv() print(f"Received: {response}") asyncio.get_event_loop().run_until_complete(hello())
这个客户端会连接到本地的 8765 端口,向服务器发送一条 "Hello, WebSocket!" 的消息,然后等待接收服务器的回应。
运行服务器和客户端的代码后,你可以看到客户端收到了服务器的回应 "Echo: Hello, WebSocket!",这只是一个非常简单的示例,实际使用中你可能需要处理更复杂的逻辑,例如处理多个客户端连接、实现心跳检测、处理错误等,不过这已经为你提供了一个入门的基础。