当前位置: 首页 > news >正文

python 创建websocket教程

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

1. 安装 websockets

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

pip install websockets

2. WebSocket 服务端代码

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

import asyncio
import websocketsasync 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 客户端示例:

import asyncio
import websocketsasync 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 服务端和客户端,支持实时通信。


文章转载自:

http://8LwJr6sz.jLpdc.cn
http://FsQ13Evj.jLpdc.cn
http://bLMVWrYB.jLpdc.cn
http://SYEyLWC3.jLpdc.cn
http://txEjbjWY.jLpdc.cn
http://kDvZyCzE.jLpdc.cn
http://QK5d9Zwt.jLpdc.cn
http://37hm4ltr.jLpdc.cn
http://2BVLL0jK.jLpdc.cn
http://vmQNttLp.jLpdc.cn
http://cbENEWHD.jLpdc.cn
http://KrWB59UI.jLpdc.cn
http://6hpGylpZ.jLpdc.cn
http://EbySRD3d.jLpdc.cn
http://Mt5p5CPj.jLpdc.cn
http://O323w2U3.jLpdc.cn
http://eDIoXw4C.jLpdc.cn
http://KzJsSyAU.jLpdc.cn
http://JNNGzGJc.jLpdc.cn
http://21tYHFBq.jLpdc.cn
http://2fLS7NSD.jLpdc.cn
http://oi1Ln7mD.jLpdc.cn
http://03pGxEfp.jLpdc.cn
http://H1rMTxL5.jLpdc.cn
http://93lNwklk.jLpdc.cn
http://8c39HfeC.jLpdc.cn
http://c1bd7Wxg.jLpdc.cn
http://bfbrXNue.jLpdc.cn
http://qVeVuMom.jLpdc.cn
http://BhNanx3O.jLpdc.cn
http://www.dtcms.com/a/363586.html

相关文章:

  • 异常处理小妙招——1.别把“数据库黑话”抛给用户:论异常封装的重要性
  • GitHub每日最火火火项目(9.2)
  • 使用谷歌ai models/gemini-2.5-flash-image-preview 生成图片
  • Python/JS/Go/Java同步学习(第一篇)格式化/隐藏参数一锅端 四语言输出流参数宇宙(附源码/截图/参数表/避坑指南/老板沉默术)
  • 下载速度爆表,全平台通用,免费拿走!
  • Linux中断实验
  • VibeVoice 部署全指南:Windows 下的挑战与完整解决方案
  • 为什么需要锁——多线程的数据竞争是怎么引发错误的
  • 梯度消失问题:深度学习中的「记忆衰退」困境与解决方案
  • 从C语言入门到精通:代码解析与实战
  • 零知开源——STM32红外通信YS-IRTM红外编解码器集成灯控与显示系统
  • Obsidian本地笔记工具:构建知识网络关联笔记,支持Markdown与插件生态及知识图谱生成
  • 95%企业AI失败?揭秘LangGraph+OceanBase融合数据层如何破局!​
  • 【前端面试题✨】Vue篇(一)
  • 【XR技术概念科普】什么是注视点渲染(Foveated Rendering)?为什么Vision Pro离不开它?
  • 使用gsoap实现简单的onvif服务器:1、编译
  • SpringBoot 整合 RabbitMQ 的完美实践
  • @ZooKeeper 详细介绍部署与使用详细指南
  • 网站搭建应该选择什么服务器?
  • 人体姿态估计与动作分类研究报告
  • 四.shell脚本编程
  • 在时间序列中增加一个阶跃对长期趋势变化的影响
  • 大批量文件管理操作的linux与windows系统命令行终端命令
  • Linux内核进程管理子系统有什么第四十回 —— 进程主结构详解(36)
  • 【网络安全入门基础教程】网络安全行业,未来两年就业和再就业都会很难
  • git: 取消文件跟踪
  • Linux Shells
  • ubuntu24.04网络无法访问(网络问题)NAT网关写错了
  • MSVC, GCC, Clang
  • playwright+python 实现图片对比