Java 编写websocket client 压测脚本
对于Java开发者而言,使用Java编写websocket client压测脚本是一件比较容易的事情。下面给出一个基于Java语言的websocket client压测脚本示例,供大家参考。
import java.net.URI;
import java.util.concurrent.CountDownLatch;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;
public class WebSocketClientTest {
public static void main( String[] args ) throws InterruptedException {
int count = 100;
String serverUrl = "wss://example.com/ws";
CountDownLatch latch = new CountDownLatch( count );
for (int i = 0; i < count; i++) {
WebSocketClient client = new WebSocketClient( new URI( serverUrl ) ) {
@Override
public void onOpen( ServerHandshake handshake ) {
System.out.println( "Opened: " + handshake );
}
@Override
public void onMessage( String message ) {
System.out.println( "Received: " + message );
}
@Override
public void onClose( int code, String reason, boolean remote ) {
System.out.println( "Closed: " + reason );
latch.countDown();
}
@Override
public void onError( Exception ex ) {
System.out.println( "Exception: " + ex.getMessage() );
latch.countDown();
}
};
client.connect();
}
latch.await();
}
}
```
上述示例中使用了`org.java_websocket`库来实现websocket client。该库可以通过Maven等构建工具来引入,也可以通过官网下载jar包并手动引入。`org.java_websocket`库提供了`WebSocketClient`类来实现WebSocket客户端,并且该类提供了四个回调方法,分别是`onOpen`、`onMessage`、`onClose`和`onError`,我们可以在这四个回调方法中做一些逻辑处理。
在示例中,我们使用了`CountDownLatch`类来控制线程同步,确保当所有的websocket连接都关闭之后才结束程序。`CountDownLatch`在创建时需要指定计数器的值,然后可以通过`countDown`方法减少计数器的值,可以通过`await`方法来阻塞当前线程,直到计数器的值为0。
通过`for`循环来模拟创建多个websocket连接以进行压测,当所有的websocket连接都连接成功之后,程序就会阻塞在`latch.await()`处,直到所有连接都关闭,程序才会结束。
以上是一个简单的Java实现的WebSocket客户端压测脚本示例,可以作为参考来编写自己的压测脚本。
相关文章:
Java 编写websocket client 压测脚本
对于Java开发者而言,使用Java编写websocket client压测脚本是一件比较容易的事情。下面给出一个基于Java语言的websocket client压测脚本示例,供大家参考。 import java.net.URI; import java.util.concurrent.CountDownLatch; import org.java_websocke…...
设计模式之【备忘录模式】,“后悔药”是可以有的
文章目录 一、什么是备忘录模式1、备忘录模式使用场景2、备忘录模式优缺点3、备忘录模式的三大角色4、白箱备忘录和黑箱备忘录5、思考:备份频率快,备份对象大的备忘录应该如何设计 二、实例1、备忘录模式的一般写法2、使用栈管理富文本编辑器3、游戏状态…...
ATECLOUD云测试平台新能源电机测试系统:高效、可扩展的测试利器
随着全球对环境保护的日益重视,新能源的发展越来越受到关注。电动汽车作为新能源领域的重要组成部分,其性能和质量对于消费者来说至关重要。为了确保电动汽车的性能和质量,测试系统平台解决方案变得越来越重要。本文将介绍一种基于ATECLOUD智…...
项目随机问题笔记
一、前端项目启动的命令 启动项目依赖:npm install 安装cross-env模块:npm i cross-env --save-dev 启动报错时试试这个 npm install node-sass (安装sass) 启动项目命令1 npm run dev 启动项目命令2 npm run start 启动项目命令3 npm start 二、前…...
Linux网络编程之recv函数
功能 recv 函数的功能就是从套接字中接收数据。 头文件 #include <sys/types.h> #include <sys/socket.h>原型 ssize_t recv(int sockfd, void *buf, size_t len, int flags);参数 参数描述sockfdsocket 文件描述符buf接收数据缓冲区len接收数据缓冲区的大小f…...
ChatGPT免费使用的方法有哪些?
目录 一、ChatGpt是什么? 二、ChatGPT国内免费使用的方法: 第一点:电脑端 第二点:手机端 三、结语: 一、ChatGpt是什么? ChatGPt是美国OpenAI [1] 研发的聊天机器人程序 。更是人工智能技术驱动的自然语…...
【华为OD机试】找朋友【2023 B卷|100分】
华为OD机试- 题目列表 2023Q1 点这里!! 2023华为OD机试-刷题指南 点这里!! 题目描述 在学校中,N个小朋友站成一队, 第i个小朋友的身高为height[i], 第i个小朋友可以看到的第一个比自己身高更高的小朋友j,那么j是i的好朋友(要求j > i)。 请重新生成一个列表,对应…...
【教学类-35-01】带笔画步骤图的描字(姓氏)(A4整张)
作品展示: 1、图片一行(0-6):文字简单,写3*412个字 2、图片2行(6-12):笔画适中,写3*39个字 3、图片3行(12-18):笔画适中,…...
关于PyQt5的环境搭建
目录 一、需要的环境 二、安装python 1、python安装链接 三、安装PyQt5 1、使用豆瓣的镜像 2、配置环境变量 四、安装pycharm 1、pycharm官网链接 五、配置环境 1、找到设置 2、添加designer 3、配置ui 4、配置rc 六、注意问题 一、需要的环境 1、安装好python安装…...
rsync+inotfy实时同步
rsyncinotfy实时同步 目录 一、服务器端 二、客户端 一、服务器端 1、安装网站服务,启动,但是不写首页文件 yum -y install httpd 2、安装raync服务 yum -y install rsync 3、修改主配置文件 (/etc/rsyncd.conf) uid root gi…...
Python代码写好了怎么运行
Python代码写好了怎么运行?相信问这样问题的朋友一定是刚刚入门Python的初学者。本文就来为大家详细讲讲如何运行Python代码。 一般来讲,运行Python代码的方式有两种,一是在Python交互式命令行下运行;另一种是使用文本编辑器&…...
2023 年的 Web Worker 项目实践
目录 前言 引入 Web Worker Worker 实践 Worker 到底有多难用 类库调研 有类库加持的 worker 现状 向着舒适无感的 worker 编写前进 1. 抽取依赖,管理编译和更新: 2. 定义公共调用函数,引入所打包的依赖并串联流程: 3. …...
C++的最后一道坎 | 百万年薪的程序员
| 导语 C 的起源可以追溯到 40 年前,但它仍然是当今使用最广泛的编程语言之一,C发明人Bjarne Stroustrup 一开始没想到 C 会获得如此大的成功,他说:“C 的成功显然令人惊讶。我认为它的成功取决于其最初的设计目标,就是…...
Unity的OnOpenAsset:深入解析与实用案例
Unity OnOpenAsset 在Unity中,OnOpenAsset是一个非常有用的回调函数,它可以在用户双击资源文件时自动打开一个编辑器窗口。这个回调函数可以用于自定义资源编辑,提高工作效率。本文将介绍OnOpenAsset的使用方法,并提供三个使用例…...
【Netty】Netty 程序引导类(九)
文章目录 前言一、引导程序类二、AbstractBootStrap 抽象类三、Bootstrap 类四、ServerBootstrap 类五、引导服务器5.1、 实例化引导程序类5.2、设置 EventLoopGroup5.3、指定 Channel 类型5.4、指定 ChannelHandler5.5、设置 Channel 选项5.6、绑定端口启动服务 六、引导客户端…...
如何使用进行MQ中间件接口测试
进行MQ中间件接口测试时,需要按以下步骤进行: 1.配置测试环境 搭建MQ服务器环境,并确保连接配置正确,以及客户端SDK等相关依赖库和组件已安装并配置正确。 2.制定测试计划 测试人员需要根据具体业务场景和测试目的,制…...
Zebec生态进展迅速,频被BitFlow、Matryx DAO等蹭热度碰瓷
进入到 2023 年以来, Zebec 生态的整体发展突飞猛进,除了流支付协议 Zebec Protocol 不断通过收购来扩大自身流支付业务、与万事达等合作推出 Zebec Card 等在支付业务上,实现进展外,其社区驱动的Layer3 模块化链 Nautilus Chain …...
7种PCB走线方式
01电源布局布线相关 数字电路很多时候需要的电流是不连续的,所以对一些高速器件就会产生浪涌电流。 如果电源走线很长,则由于浪涌电流的存在进而会导致高频噪声,而此高频噪声会引入到其他信号中去。 而在高速电路中必然会存在寄生电感和寄…...
Rabbit SpringBoot高级用法
Rabbit高级用法 一、Rabbit Springboot集成1.1 引入依赖1.2 添加配置1.3 添加Config1.4 编写Consumer1.5 发送消息 二、Rabbit 高级用法2.1 消息发送前置处理器2.2 消息发送确认机制2.3 消息接收后处理器2.4 事务消息 一、Rabbit Springboot集成 1.1 引入依赖 <dependency…...
找不到vcruntime140.dll,无法继续执行代码?多种解决方法解析
找不到vcruntime140.dll,无法继续执行代码?当你在尝试运行某个程序时,突然弹出一条错误提示框,告诉你无法继续执行代码,因为找不到vcruntime140.dll。这个问题很常见,但是它可能会让你感到困惑和疑惑。这篇文章将详细介…...
Skills一站式搜索、安装、管理工具,支持一键同步40款AI工具!
文章目录 📖 介绍 📖 🏡 演示环境 🏡 📒 Skill一站式搜索、安装、管理工具 📒 🔍 解决什么痛点 🚀 快速上手 🔄 功能一:迁移整理现有Skill 🔎 功能二:搜索安装Skill 🔔 功能三:同步分发到多工具 📋 支持的工具列表 ⚙️ 配置说明 🤔 优缺点分析 ⚓…...
Python自动化抢票脚本:从原理到实战的完整实现指南
Python自动化抢票脚本:从原理到实战的完整实现指南 【免费下载链接】DamaiHelper 大麦网演唱会演出抢票脚本。 项目地址: https://gitcode.com/gh_mirrors/dama/DamaiHelper 在数字化时代,热门演出门票的抢购已成为技术与速度的竞争。自动化抢票技…...
3步盘活闲置手机:DroidCam开源摄像头工具终极部署指南
3步盘活闲置手机:DroidCam开源摄像头工具终极部署指南 【免费下载链接】droidcam GNU/Linux/nix client for DroidCam 项目地址: https://gitcode.com/gh_mirrors/dr/droidcam 在数字化时代,每一部旧手机都蕴藏着未被充分利用的硬件潜能。DroidCa…...
DAMO-YOLO与TinyNAS WebUI实现微信小程序开发:实时手机检测实战
DAMO-YOLO与TinyNAS WebUI实现微信小程序开发:实时手机检测实战 用最简单的方法,让手机摄像头实时识别手机 1. 项目背景与价值 你有没有遇到过这样的场景:在图书馆需要检测学生是否违规使用手机,或者在会议室需要监控手机使用情况…...
基于数据预处理与PSO-SVM的风功率预测聚类研究
在风功率预测聚类中,我们使用了数据预处理和PSO-SVM方法。首先,我们使用DBCAN算法提取了风功率异常数据,并使用KMEANS算法对处理后的数据进行聚类。我们进行了三类仿真实验设置。基于上述聚类结果,我们采用粒子群算法(…...
智能网页数据获取:Crawl4AI v1.0.0全攻略
智能网页数据获取:Crawl4AI v1.0.0全攻略 【免费下载链接】crawl4ai 🚀🤖 Crawl4AI: Open-source LLM Friendly Web Crawler & Scraper. Dont be shy, join here: https://discord.gg/jP8KfhDhyN 项目地址: https://gitcode.com/GitHub…...
[Python3高阶编程] - 高阶函数一:常见的高阶函数
一、常见的高阶函数Python 中的高阶函数(Higher-Order Function)是指接收函数作为参数或返回一个函数的函数。Python 内置了大量高阶函数,下面按来源分类尽量列全:1. 内置高阶函数函数作用map(func, *iterables)将函数逐个作用于可…...
5步掌握高效API测试:从安装到协作的全流程指南
5步掌握高效API测试:从安装到协作的全流程指南 【免费下载链接】insomnia The open-source, cross-platform API client for GraphQL, REST, WebSockets, SSE and gRPC. With Cloud, Local and Git storage. 项目地址: https://gitcode.com/gh_mirrors/in/insomni…...
PlayIntegrityFix安全验证解决方案:从问题诊断到实战配置全指南
PlayIntegrityFix安全验证解决方案:从问题诊断到实战配置全指南 【免费下载链接】PlayIntegrityFix Fix Play Integrity (and SafetyNet) verdicts. 项目地址: https://gitcode.com/GitHub_Trending/pl/PlayIntegrityFix 一、验证困境与解决方案概述 Androi…...
无需下载ps,用快马5分钟打造你的第一个在线图像处理工具原型
最近想学点图像处理,但一看到PS那庞大的安装包和复杂的界面就头疼。直到发现用InsCode(快马)平台可以快速搭建网页版图像处理工具,不用下载任何软件,5分钟就能做出功能原型,特别适合验证创意或临时处理图片。分享下我的实现过程&a…...
