python 创建websocket教程

在 Python 中使用 WebSocket 通信通常可以通过 websockets 库来实现。这个库提供了简洁的接口来创建 WebSocket 服务端和客户端。以下是一个简单的教程,展示了如何在 Python 中建立 WebSocket 服务端和客户端。

1. 安装 websockets 库

首先,你需要安装 websockets 库,可以使用 pip 来安装:

bash 复制代码
pip install websockets

2. WebSocket 服务端代码

WebSocket 服务端会监听某个端口,等待客户端连接,并处理消息。以下是一个简单的 WebSocket 服务端示例:

python 复制代码
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 客户端示例:

python 复制代码
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. 运行服务端和客户端

  1. 先运行 WebSocket 服务端,命令行中执行服务端代码。
  2. 然后运行 WebSocket 客户端,命令行中执行客户端代码。

客户端会发送 "你好,服务器!" 到服务端,服务端会回应 "服务器回应: 你好,服务器!"。

5. 说明

  • websockets.serve 用于创建服务端并监听指定的端口(在示例中是 localhost:8765)。
  • websocket.recv() 用于接收来自客户端的消息。
  • websocket.send() 用于发送消息到客户端。

这种方式可以轻松创建 WebSocket 服务端和客户端,支持实时通信。

相关推荐
老秦包你会2 分钟前
计算机网络第二课 ----Socket(套接字)编程预备
开发语言·计算机网络·php
旖旎夜光3 分钟前
【C++ 基础入门】C++多态(下):单/多继承虚表、多态补充与 21 道高频题
开发语言·c++·笔记·学习
天天被压力13 分钟前
【A股分钟级高频数据完全手册 #11】券商实时行情数据接口:实时交易(券商源)接入与字段
java·人工智能·python
总裁余(余登武)17 分钟前
【python项目】:1操作EXCEl自动化开发
python·自动化·excel
芝梵家电数据笔记20 分钟前
用字段表核对暖菜板长期使用条件:结构、暖区、质保边界
python·家电·数据校验·dataclass·选购
天天被压力26 分钟前
【A股分钟级高频数据完全手册 #12】股票五档盘口数据接口:买卖五档实时盘口解析
java·人工智能·python
Wang's Blog9 小时前
Java 项目实战: 交友项目 - FastDFS:入门案例
java·开发语言·交友
apcipot_rain10 小时前
C++转Java日记(03)
java·开发语言·c++
布莱克60510 小时前
C++ 中 map 的 insert 与 emplace:key 已存在时会覆盖吗?
开发语言·数据结构·c++·算法·map
xys_67811 小时前
深挖C++:类和对象(中)
开发语言·c++