Python WebSocket服务器

Python WebSocket服务器

Python WebSocket服务器

WebSocket是一种在单个TCP连接上进行全双工通信的网络协议,它可以实现实时通信,非常适合用于即时通讯应用程序或在线游戏等。在本文中,我们将使用Python来搭建一个简单的WebSocket服务器。

准备工作

首先,我们需要安装一个Python的WebSocket库,推荐使用websockets库。可以通过以下命令来安装:

pip install websockets

创建WebSocket服务器

接下来,让我们来创建一个简单的WebSocket服务器。在创建服务器之前,我们需要先 import websocketsasyncio 这两个库。

import asyncio
import websockets

然后,我们可以定义一个处理客户端消息的函数 on_message,以及一个接收客户端连接的函数 on_connect

async def on_message(websocket, path):
    while True:
        message = await websocket.recv()
        print(f"Received message: {message}")
        await websocket.send(f"Received message: {message}")

async def on_connect(websocket, path):
    print("Client connected")
    await on_message(websocket, path)

start_server = websockets.serve(on_connect, "localhost", 8765)

asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()

在上面的代码中,我们定义了一个 on_message 函数,用来处理客户端发送的消息,并向客户端发送一个回复。我们还定义了一个 on_connect 函数,用来处理客户端的连接。

最后,我们创建了一个WebSocket服务器,并绑定在 localhost 的端口 8765 上。

运行WebSocket服务器

完成以上代码后,我们可以将其保存在一个 .py 文件中,比如 server.py。然后通过以下命令来运行WebSocket服务器:

python server.py

接着,我们可以编写一个客户端程序来连接到这个WebSocket服务器。客户端发送消息后,服务器将会收到消息并回复。

WebSocket客户端

我们可以使用浏览器自带的开发工具或者简单的WebSocket客户端来与我们的服务器进行通信。下面给出一个简单的Python WebSocket客户端示例:

import asyncio
import websockets

async def send_message():
    async with websockets.connect("ws://localhost:8765") as websocket:
        while True:
            message = input("Enter a message: ")
            await websocket.send(message)
            response = await websocket.recv()
            print(f"Received response: {response}")

asyncio.get_event_loop().run_until_complete(send_message())

上面的客户端代码首先连接到 localhost:8765,然后发送用户输入的消息,并打印服务器返回的消息。

结语

通过本文,我们学习了如何使用Python中的 websockets 库创建一个简单的WebSocket服务器,并编写了一个与服务器通信的WebSocket客户端。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程