使用Python构建可靠的WebSocket服务器
发布时间:2023-12-16 09:59:35
WebSocket 是一种实时通信协议,可以在客户端和服务器之间建立持久的连接,以实现双向通信。Python 有许多库可以用来构建可靠的 WebSocket 服务器,其中一个很流行的是 websockets。
下面是一个使用 websockets 库构建可靠的 WebSocket 服务器的示例代码:
import asyncio
import websockets
# 用来存储连接的客户端
connected_clients = set()
async def on_connect(websocket, path):
# 连接时将客户端添加到已连接客户端集合中
connected_clients.add(websocket)
try:
while True:
# 从客户端接收消息
message = await websocket.recv()
# 做一些处理,比如将消息广播给所有已连接的客户端
await broadcast(message)
finally:
# 断开连接时将客户端从已连接客户端集合中移除
connected_clients.remove(websocket)
async def broadcast(message):
# 广播消息给所有已连接的客户端
for client in connected_clients:
await client.send(message)
# 创建服务器
start_server = websockets.serve(on_connect, "localhost", 8765)
# 运行服务器
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
这个示例代码创建了一个简单的 WebSocket 服务器,它监听在本地的 8765 端口上。当客户端连接到服务器时,将会触发 on_connect 方法。在这个方法中,我们首先将客户端添加到已连接客户端集合中,然后循环接收客户端发送的消息,并将其广播给所有已连接的客户端。最后,当客户端断开连接时,将其从已连接客户端集合中移除。
你可以使用一个 WebSocket 客户端来测试这个服务器,比如使用 JavaScript 的 WebSocket 对象或者 websockets 库提供的 WebSocket 客户端。
希望这个示例代码可以帮助你构建一个可靠的 WebSocket 服务器。
