使用WebSocket-bench测试WebSocket应用
1安装Node.js
CentOS6.5环境下安装
检查是否安装了epel
yum repolist
如果没有在结果中看到epel则通过yum命令安装
yum install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
安装好以上环境后开始安装node.js
sudo yum install nodejs npm --enablerepo=epel
2安装WebSocket-bench
使用npm以全局方式安装
npm install -g websocket-bench --registry=http://registry.npm.taobao.org
3WebSocket-bench使用
修改文件打开数
ulimit -n 60000
使用generator来自定义测试逻辑
module.exports = { //可选,在建立连接之前会执行 beforeConnect : function(client) {
}, //必选,建立连接后要做的事情 onConnect : function(client, done) { //向服务器发送消息
//client为客户端的连接实例
client.emit('GetMessageList','{"channelID": "1609"}'); //回调函数 done(); }, //必选,向服务器发送消息时运行的代码 sendMessage : function(client, done) { client.emit('GetMessageList','{"channelID": "1609"}');
done(); }, options : { // realm: 'chat' } };
编写完成后,在运行websocket-bench时,使用-g参数指定generator文件
有时需要修改socket.io协议,位置在/usr/lib/node_modules/websocket-bench/lib/workers/socketioworker.js第18行
var client = io.connect(this.server, { 'force new connection' : true,'transports': ['websocket', 'polling']});
运行websocket-bench
websocket-bench -a 10 -c 1 -g generator.js -k http://localhost:20001/ -o opt.log
-a
参数用于指定总共的测试次数, -c
参数指定并发连接数,使用 -o
参数可以将报告保存到单独的文件中
更多使用请查看https://github.com/M6Web/websocket-bench
4测试报告
Launch bench with 10 total connection, 1 concurent connection
0 message(s) send by client
1 worker(s)
WS server : socket.io
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构