欢迎访问宙启技术站
智能推送

使用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 服务器。