为了测试机器能够最大的长连接个数,故写了一个js脚本,需要用node进行执行

var WebSocketClient = require('websocket').client; var size = 8000;
var index = 0; setInterval(function () {
if (index < size) {
init();
index++;
}
}, 10);
console.log('begin...');
init = function () {
var client = new WebSocketClient();
let urlIndex = index;
// client.connect('ws://192.168.214.191:8899/ws', "", "");
client.connect('ws://127.0.0.1:21112/OrderWebSocket/'+index, "", "");
// client.connect('ws://192.168.214.181:30004/Invest/OrderWebSocket/' + index, "", ""); client.on('connectFailed', function (error) {
console.log('Connect Error: ' + error.toString());
}); client.count = 0; client.start = 0;
client.on('connect', function (connection) {
var last = (Number)(new Date().getMilliseconds());
console.log(index + ' Connected\n');
connection.on('error', function (error) {
console.log("Connection Error: " + error.toString());
});
connection.on('close', function (error) {
var second = (new Date().getTime() - client.start)/1000 + 1;
console.log(error + ';  Connection Closed:second = '+ second +",count:"+client.count +"--timepercount:"+second/client.count); });
connection.on('message', function (message) {
if(client.start == 0){
client.start = new Date().getTime();
} client.count++;
// var now = (Number)(new Date().getMilliseconds());
// // console.log("序号:"+urlIndex+",消息:"+message.utf8Data+"\n"+(now - last));
// last = now;
});
connection.send("hello");
}); };

以上代码就是来连接websocket使用的,发现到了1.3w左右连接,就出现Connection Error,解决方案


编辑/etc/security/limits.conf,添加以下两行代码,注意前面有星号

* soft nofile 1000000
* hard nofile 1000000

然后修改临时端口和IP_TABLE最大跟踪的TCP连接数有限制,编辑/etc/sysctl.conf,在文件中添加如下行

net.ipv4.ip_local_port_range = 10000 65535
net.netfilter.nf_conntrack_max = 1000000
net.nf_conntrack_max = 1000000

完毕,现在连接可以到4.5w左右差不多,我的机器会报以下错误

个人联系方式QQ:944484545,欢迎大家的加入,分享学习是一件开心事

Websocket 突破最大长连接的更多相关文章

  1. 浅谈Websocket、Ajax轮询和长连接(long pull)

    最近看到了一些介绍Websocket的文章,觉得挺有用,所以在这里将自己的对其三者的理解记录一下. 1.什么是Websocket Websocket是HTML5中提出的新的协议,注意,这里是协议,可以 ...

  2. HTTP长连接和短连接 + Websocket

    HTTP协议与TCP/IP协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议.IP协议主要解决网络路由和寻址问题,T ...

  3. 微信小程序中如何使用WebSocket实现长连接(含完整源码)

    本文由腾讯云技术团队原创,感谢作者的分享. 1.前言   微信小程序提供了一套在微信上运行小程序的解决方案,有比较完整的框架.组件以及 API,在这个平台上面的想象空间很大.腾讯云研究了一番之后,发现 ...

  4. 当web应用包含了websocket长连接,如何在web应用前加一层nginx转发

    1 通过在web应用的前面加一层nginx ,可以实现一台主机部署多个应用,每个应用都可以用不同的域名去访问,并且端口都是80 2 nignx 转发websocket长连接 1 每个web应用,他们运 ...

  5. Python WebSocket长连接心跳与短连接

    python websocket 安装 pip install websocket-client 先来看一下,长连接调用方式: ws = websocket.WebSocketApp("ws ...

  6. Vue+WebSocket 实现页面实时刷新长连接

    最近vue项目要做数据实时刷新,折线图每秒重画一次,数据每0.5秒刷新一次,说白了就是实时刷新,因为数据量较大,用定时器估计页面停留一会就会卡死... 与后台人员讨论过后决定使用h5新增的WebSoc ...

  7. 了解轮询、长轮询、长连接、websocket

    业务开发中我们往往会有一些需要即时通信的场景,比如微信扫码登录.聊天功能. 下面这四种方式都可以实现即时通信. 轮询: 浏览器通过定时器每隔一段时间向服务器端发送请求,服务器端收到请求并响应请求.没有 ...

  8. WebSocket 长连接 及超时问题解决

    <?phpset_time_limit(0); class SocketService { private $address = 'localhost'; private $port = 80; ...

  9. 实现单台测试机6万websocket长连接

    本文由作者郑银燕授权网易云社区发布. 本文是我在测试过程中的记录,实现了单台测试机发起最大的websocket长连接数.在一台测试机上,连接到一个远程服务时的本地端口是有限的.根据TCP/IP协议,由 ...

随机推荐

  1. 一步一步理解线段树——转载自JustDoIT

    一步一步理解线段树   目录 一.概述 二.从一个例子理解线段树 创建线段树 线段树区间查询 单节点更新 区间更新 三.线段树实战 -------------------------- 一 概述 线段 ...

  2. bootstrap列表组的使用

    <ul class="list-group"> <li class="list-group-item"> <div class=& ...

  3. python-pandas-1

    series Series 是pandas两大数据结构中(DataFrame,Series)的一种. 创建Series Series的定义:Series是一种类似于一维数组的对象,它由一组数据(各种N ...

  4. laravel查询构造器DB还是ORM,这两者有什么区别,各该用在什么场景中

    解答一: 我们所有操作都是走的orm,因为操作简单 直观明了 好维护,性能是低一些 但还没有多致命,真有并发需要优化了 用DB也不一定能解决问题.还是要了解orm每个方法的意思,不然你可能一不小心就会 ...

  5. vscode 占内存的方法

    1.修复vs code 造成 rg.exe内存占用过大的问题 search.followSymlinks: false 2.修复vs code 造成 git.exe内存占用过大的问题 git.enab ...

  6. 评CSDN上一篇讲述数据迁移的文章“程序员 12 小时惊魂记:凌晨迁移数据出大事故!”

    原文地址:https://blog.csdn.net/csdnnews/article/details/98476886 我的评论:热数据迁移,本不该搞突击,这样一旦出现问题后果不堪设想,多少DBA和 ...

  7. Oracle 中使用正则表达式

    Oracle使用正则表达式离不开这4个函数: 1.regexp_like select t3.cert_no from table_name t3 where regexp_like(t3.cert_ ...

  8. python sqlalchemy 进行 mysql 数据库操作

    1. 进行mysql数据库的创建,如果已经存在,就相当于进行数据库的连接操作 from sqlalchemy import create_engine from sqlalchemy.ext.decl ...

  9. java传递String参数

    java传递String参数不会改变原String参数,此处传递的是copy package numCombine; public class NumComberAll { public static ...

  10. java基础点<一>

    1. 九种基本数据类型的大小,以及他们的封装类.byte,short,int,long,boolue,float,double,char,特殊voidByte,Short,Integer,Long,B ...