2025-03-08
编程
00
请注意,本文编写于 50 天前,最后修改于 50 天前,其中某些信息可能已经过时。

目录

安装
用法实例
创建WebSocket服务器
创建WebSocket客户端
运行示例
注意事项

要在Python中使用WebSocket,通常会用到的一个流行库是websockets

安装

按照下面的步骤操作:

  1. 打开命令提示符(Windows)或终端(macOS/Linux)。
  2. 输入以下命令并执行:
bash
pip install websockets

如果你想要安装特定版本的websockets,可以通过如下命令指定版本号:

bash
pip install websockets==版本号

请注意,根据你的Python环境和操作系统不同,可能需要管理员权限来运行上述命令(特别是在Linux和macOS上)。如果遇到权限问题,尝试在命令前加上sudo(仅限于Linux/macOS用户),例如:

bash
sudo pip install websockets

另外,如果你的工作环境中使用了虚拟环境(virtual environment),请先激活你的虚拟环境再执行安装命令,以确保包被安装到正确的环境中。

成功安装后,你就可以在你的Python项目中导入并使用websockets库了。

使用websockets库在Python中创建和使用WebSocket连接涉及几个步骤。下面我将展示如何创建一个简单的WebSocket客户端和服务器,以及它们之间如何进行通信。

用法实例

创建WebSocket服务器

首先,我们需要创建一个WebSocket服务器。以下是一个基本的例子:

python
import asyncio import websockets async def echo(websocket, path): async for message in websocket: print(f"Received message: {message}") await websocket.send(f"Echo: {message}") start_server = websockets.serve(echo, "localhost", 8765) asyncio.get_event_loop().run_until_complete(start_server) print("WebSocket server started at ws://localhost:8765") asyncio.get_event_loop().run_forever()

这个例子中的服务器会监听localhost的8765端口,并简单地将收到的消息加上前缀"Echo: "后发送回去。

创建WebSocket客户端

接下来是创建一个WebSocket客户端来连接到上述服务器。这是一个简单的客户端示例:

python
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 from server: {response}") asyncio.get_event_loop().run_until_complete(hello())

这段代码创建了一个客户端,它连接到运行在本地的WebSocket服务器(在8765端口),发送一条消息,然后等待接收服务器返回的消息并打印出来。

运行示例

  1. 启动服务器:首先运行服务器端代码,你会看到提示“WebSocket server started at ws://localhost:8765”,表示服务器已经准备好接受连接。
  2. 运行客户端:接着运行客户端代码,它会尝试连接到服务器,发送消息,并打印服务器响应。

注意事项

  • 确保先启动服务器再启动客户端。
  • websockets库基于asyncio,因此所有操作都是异步的。
  • 在生产环境中,请考虑处理异常、错误重连等更复杂的场景。

通过这种方式,你可以构建自己的WebSocket应用,无论是实时聊天应用、在线游戏还是其他需要即时双向通信的应用。