【学习心得】Python好库推荐——websocket-client
websocket-client 是一个在 Python 中广泛使用的库,用于创建 WebSocket 客户端并实现与 WebSocket 服务器的双向通信。更多的关于websocket协议介绍,可以看看我之前写的文章哦!
【学习心得】websocket协议简介并与http协议对比http://t.csdnimg.cn/C3hEQ
一、安装和快速入门
pip install websocket-client
两个基本的使用示例来说明如何创建一个 WebSocket 客户端、连接到服务器、发送消息。
(1)websocket短连接
# 安装websocket-client库
# pip install websocket-client# 导入websocket
import websocket# 创建客户端实例
ws = websocket.WebSocket()# 连接指定的ws服务器
ws.connect("ws://echo.websocket.events") # 这个网址是官方测试网址# 发送消息
ws.send("Hello!")
# print(ws.send("Hello!")) # 返回的是你发送信息的字节大小,并不是真的服务器响应给你的数据# 接收响应
res = ws.recv()
print(res) # recv方法才能得到服务器响应给你的数据# 关闭ws连接
ws.close()
(2)websocket长连接
# 导入websocket-client包
import websocket# 定义on_message回调函数用来处理 websocket事件——客户端接收服务端数据时触发
def on_message(ws_app, message):print(message) # 当客户端接收到服务器响应回的数据时,把他打印出来显示一下# 实例化一个ws客户端
url = "wss://testnet-explorer.binance.org/ws/block"
ws = websocket.WebSocketApp(url=url, on_message=on_message) # 传入的是回调函数所以不要小括号# 开启ws长连接
# 启动一个无限循环,保持WebSocket连接的持续开放状态,并监听来自服务器的数据流。
# 当有新的消息到达时,将通过 on_message 回调函数处理这些消息。
ws.run_forever()
二、websocket的所有事件介绍
WebSocket 对象的相关事件:
事件 | 事件回调函数 | 描述 |
open | on_open | 连接建立时触发 |
message | on_message | 客户端接收到服务器数据时触发 |
error | on_error | 通信发生错误时触发 |
close | on_close | 连接关闭时触发 |
# 导入websocket-client库
import websocket# 定义on_message事件回调函数
def on_message(ws_app, message):print("接收到服务器响应:", message)# 定义on_error事件回调函数
def on_error(ws_app, error):print(error)# 定义on_open事件回调函数
def on_open(ws_app):print('已连接到WebSocket服务器')# 定义on_close事件回调函数
def on_close(ws_app):print('已关闭和WebSocket服务器的连接')# 实例化一个ws客户端
url = "ws://echo.websocket.events"
ws = websocket.WebSocketApp(url=url,on_open=on_open,on_message=on_message,on_error=on_error,on_close=on_close,
)# 开启长连接,开始监听
ws.run_forever()# 发送信息
ws.send("hello!")# 关闭连接
ws.close()
三、如何主动退出长连接?
"""
设置一个退出标志:
在运行 run_forever() 的外部定义一个全局变量作为退出标志,
并在需要关闭连接的地方将其设置为True。
然后,在 on_message() 或其他回调函数(如 on_error()、on_close() 等)中检查这个标志,
当满足特定条件或接收到信号时调用 ws_app.close()。
"""
import websocketshould_close = Falsedef on_message(ws_app, message):print(message)# 检查是否需要关闭连接if should_close:ws_app.close()ws = websocket.WebSocketApp("wss://testnet-explorer.binance.org/ws/block", on_message=on_message
)# 当你需要关闭连接时
def close_websocket():global should_closeshould_close = Truews.close()# 开始监听
ws.run_forever()
相关文章:

【学习心得】Python好库推荐——websocket-client
websocket-client 是一个在 Python 中广泛使用的库,用于创建 WebSocket 客户端并实现与 WebSocket 服务器的双向通信。更多的关于websocket协议介绍,可以看看我之前写的文章哦! 【学习心得】websocket协议简介并与http协议对比http://t.csdn…...

3.1_8 两级页表
文章目录 3.1_8 两级页表(一)单级页表存在的问题(二)如何解决单级页表的问题?(三)两级页表的原理、地址结构(四)如何实现地址变换(五)需要注意的几…...

【SysBench】sysbench-1.20 命令速查表
1、通用语法 The general command line syntax for sysbench is: sysbench [options]... [testname] [command] testname is an optional name of a built-in test (e.g. fileio, memory, cpu, etc.), or a name of one of the bundled Lua scripts (e.g. oltp_read_only), or…...

neo4j网页无法打开,启动一会儿后自动关闭,查看neo4j status显示Neo4j is not running.
目录 前情提要User limit of inotify watches reached无法访问此网站 前情提要 公司停电,服务器未能幸免,发现无法访问此网站,http://0.0.0.0:7474 在此之前都还好着 User limit of inotify watches reached (base) [rootlocalhost ~]# n…...

一键卸载和安装 nvidia、cuda、cudnn、tensorrt
1. 卸载 nvidia、cuda、cudnn、tensorrt sudo apt purge \"cuda*" \"libcudnn*" \"libnvinfer*" \"libnvonnxparsers*" \"libnvparsers*" \"tensorrt*" \"nvidia*&…...

LeetCode 389. 找不同
文章目录 一、题目二、C 题解 一、题目 给定两个字符串 s 和 t ,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。 示例 1: 输入:s “abcd”, t “abcde” 输出&…...

科技云报道:两会热议的数据要素,如何拥抱新技术?
科技云报道原创。 今年全国两会上,“数字经济”再次成为的热点话题。 2024年政府工作报告提到:要健全数据基础制度,大力推动数据开发开放和流通使用;适度超前建设数字基础设施,加快形成全国一体化算力体系࿱…...

【linux】进程管理:进程控制块、进程号、fork创建进程、特殊进程及exec函数族解析
一、进程的概述 可执行程序运行起来后(没有结束之前),它就成为了一个进程。程序是存放在存储介质上的一个可执行文件,而进程是程序执行的过程。进程的状态是变化的,其包括进程的创建、调度和消亡。程序是静态的,进程是…...

【DL经典回顾】激活函数大汇总(八)(Maxout Softmin附代码和详细公式)
激活函数大汇总(八)(Maxout & Softmin附代码和详细公式) 更多激活函数见激活函数大汇总列表 一、引言 欢迎来到我们深入探索神经网络核心组成部分——激活函数的系列博客。在人工智能的世界里,激活函数扮演着不…...

Docker进阶:深入了解 Dockerfile
Docker进阶:深入了解 Dockerfile 一、Dockerfile 概述二、Dockerfile 优点三、Dockerfile 编写规则四、Dockerfile 中常用的指令1、FROM2、LABEL3、RUN4、CMD5、ENTRYPOINT6、COPY7、ADD8、WORKDIR9、 ENV10、EXPOSE11、VOLUME12、USER13、注释14、ONBUILD 命令15、…...

【LeetCode热题100】206. 反转链表(链表)
一.题目要求 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 二.题目难度 简单 三.输入样例 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入:head [1,2…...

电玩城游戏大厅计时软件怎么用,佳易王计时计费管理系统软件定时语音提醒操作教程
电玩城游戏大厅计时软件怎么用,佳易王计时计费管理系统软件定时语音提醒操作教程 一、前言 以下软件操作教程以 佳易王电玩计时计费软件V18.0为例 说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 1、软件计时计费,只需点击开…...

selenium也能过某数、5s盾..
文章转载于:selenium也能过某数、5s盾… 直接安装: pip install undetected_chromedriver运行代码: import undetected_chromedriver as uc import timedriver uc.Chrome(executable_pathrC:\Users\chromedriver.exe,version_main111) driver.get(网…...

mysql笔记:8. 视图
文章目录 创建视图修改视图删除视图通过视图更新数据1. 插入数据2. 更新数据3. 删除数据 查看视图信息1. DESCRIBE2. SHOW TABLE STATUS3. SHOW CREATE VIEW4. 在views表中查看 数据库中的视图是一个虚拟表。同真实的表一样,视图包含一系列带有名称的列和行数据。行…...

指针的基本概念和用法
指针的基本概念 每个变量都被存放在从某个内存地址(以字节为单位)开始的若干字节中 “指针”也被称作“指针变量”,大小为4个字节(在64位编译器中,也优肯为8个字节)的变量,其内容代表一个内存地…...

工作随记:oracle重建一张1T数据量的大表
文章目录 一、删除测试表二、重命名旧表:三、验证:四、检查alert日志和昨天到今天的统计信息任务收集是否正常 一、删除测试表 #xshell登录用户hthis用户连接登录处理: sqlplus ht/"123456" sqlplus ht/"123456"10.8.5.…...

使用timm库的一些知识点
timm(Torch Image Models)是一个在PyTorch上构建的图像模型库,它提供了一系列预训练的深度学习模型,使得研究人员和开发者可以方便地进行图像分类、目标检测等任务。 使用timm库创建模型时,如何确定模型的名字 使用…...

一种基于宏和serde_json实现的rust web中统一返回类
本人rust萌新,写web碰到了这个,基于ChatGPT和文心一言学了宏,强行把这玩意实现出来了,做个学习记录,如果有更好的方法,勿喷。 先看效果,注意不支持嵌套,且kv映射要用>(因为它这个…...

每周一算法:A*(A Star)算法
八数码难题 题目描述 在 3 3 3\times 3 33 的棋盘上,摆有八个棋子,每个棋子上标有 1 1 1 至 8 8 8 的某一数字。棋盘中留有一个空格,空格用 0 0 0 来表示。空格周围的棋子可以移到空格中。要求解的问题是:给出一种初始布局…...

爬虫练习:获取某网站的房价信息
一、相关网站 二、相关代码 import requests from lxml import etree import csv with open(房天下数据.csv, w, newline, encodingutf-8) as csvfile:fieldnames [名称, 地点,价格,总价,联系电话]writer csv.DictWriter(csvfile, fieldnamesfieldnames)writer.writeheader…...

第一个C语言hello world
#include <stdio.h> int main() {printf("hello world ! \n");//打印函数return 0; } "#" : 预处理标志 include <> : 表示预处理的文件在<>内 stdio.h : 标准的io头文件 // io : 输入输出 // printf()…...

【Python】新手入门学习:详细介绍依赖倒置原则(DIP)及其作用、代码示例
【Python】新手入门学习:详细介绍依赖倒置原则(DIP)及其作用、代码示例 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、Py…...

嵌入式驱动学习目录索引(更新中)
前言 这是一篇索引博客,用来作为索引记录学习嵌入式Linux的过程,可以用来给自己以及需要的读者作为一个目录索引,每次更新完博客都会添加进该目录中。 嵌入式驱动学习专栏将详细记录博主学习驱动的详细过程,未来预计四个月将高强度…...

ruoyi-vue插件集成websocket
链接:插件集成 | RuoYi WebSocketServer.java:补充代码 /*** 此为广播消息* param message 消息内容*/public void sendAllMessage(String message) {LOGGER.info("【websocket.sendAllMessage】广播消息:"message);try {for(String sessionI…...

华为ce12800交换机m-lag(V-STP模式)配置举例
配置## 标题思路 采用如下的思路配置M-LAG双归接入IP网络: 1.在Switch上配置上行接口绑定在一个Eth-Trunk中。 2.分别在SwitchA和SwitchB上配置V-STP、DFS Group、peer-link和M-LAG接口。 3.分别在SwitchA和SwitchB上配置LACP M-LAG的系统优先级、系统ID。 4.分别在…...

STM32第九节(中级篇):RCC——时钟树讲解(第一节)
目录 前言 STM32第九节(中级篇):RCC——时钟树讲解 时钟树主系统时钟讲解 HSE时钟 HSI时钟 锁相环时钟 系统时钟 SW位控制 HCLK时钟 PCLKI时钟 PCLK2时钟 RTC时钟 MCO时钟输出 6.2.7时钟安全系统(CSS) 小结 前言 从…...

c/c++字符串处理标准库 string 介绍
c语言中string.h介绍 C语言的标准库中包含了一个头文件 <string.h>,该头文件提供了一系列字符串处理函数的声明和定义。以下是一些常用的函数: 字符串复制:strcpy(dest, src)。将源字符串 src 复制到目标字符串 dest,包括…...

HarmonyOS NEXT应用开发之深色模式适配
介绍 本示例介绍在开发应用以适应深色模式时,对于深色和浅色模式的适配方案,采取了多种策略如下: 固定属性适配:对于部分组件的颜色属性,如背景色或字体颜色,若保持不变,可直接设定固定色值或…...

Go微服务: 基于Go Micro框架实现微服务调用
Go Micro 1 )概述 在具体的项目开发过程中,开发者聚焦的是业务逻辑的开发和功能的实现大量的环境配置,调试搭建等基础性工作会耗费相当一部分的精力因此有必要将微服务架构中所涉及到的,相关的解决方案做集中管理和维护Go Micro …...

大模型prompt提示词如何调优?
当使用大型模型(如GPT-3.5)时,可以通过优化提示(prompt)来引导模型生成更加符合预期的内容。以下是一些调优提示词的建议: 1、清晰的问题陈述:确保你的问题或提示清晰、简明,能够准…...