在 Python 中使用 WebSocket 通信通常可以通过 websockets
库来实现。这个库提供了简洁的接口来创建 WebSocket 服务端和客户端。以下是一个简单的教程,展示了如何在 Python 中建立 WebSocket 服务端和客户端。
1. 安装 websockets
库
首先,你需要安装 websockets
库,可以使用 pip 来安装:
pip install websockets
2. WebSocket 服务端代码
WebSocket 服务端会监听某个端口,等待客户端连接,并处理消息。以下是一个简单的 WebSocket 服务端示例:
import asyncio
import websockets
async def echo(websocket, path):
# 接收客户端消息
message = await websocket.recv()
print(f"收到客户端消息: {message}")
# 发送消息到客户端
await websocket.send(f"服务器回应: {message}")
async def main():
server = await websockets.serve(echo, "localhost", 8765)
print("WebSocket 服务器已启动,等待客户端连接...")
await server.wait_closed()
# 启动服务端
asyncio.run(main())
3. WebSocket 客户端代码
WebSocket 客户端将连接到 WebSocket 服务端,并发送一些消息。以下是一个简单的 WebSocket 客户端示例:
import asyncio
import websockets
async def hello():
uri = "ws://localhost:8765"
async with websockets.connect(uri) as websocket:
# 发送消息到服务器
await websocket.send("你好,服务器!")
# 接收服务器回应
response = await websocket.recv()
print(f"收到服务器回应: {response}")
# 启动客户端
asyncio.run(hello())
4. 运行服务端和客户端
- 先运行 WebSocket 服务端,命令行中执行服务端代码。
- 然后运行 WebSocket 客户端,命令行中执行客户端代码。
客户端会发送 "你好,服务器!"
到服务端,服务端会回应 "服务器回应: 你好,服务器!"
。
5. 说明
websockets.serve
用于创建服务端并监听指定的端口(在示例中是localhost:8765
)。websocket.recv()
用于接收来自客户端的消息。websocket.send()
用于发送消息到客户端。
这种方式可以轻松创建 WebSocket 服务端和客户端,支持实时通信。