Websocket 突破最大長連接

為了測試機(jī)器能夠最大的長連接個數(shù),故寫了一個js腳本,需要用node進(jìn)行執(zhí)行

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使用的,發(fā)現(xiàn)到了1.3w左右連接,就出現(xiàn)Connection Error,解決方案


編輯/etc/security/limits.conf,添加以下兩行代碼,注意前面有星號

* soft nofile 1000000
* hard nofile 1000000
file

然后修改臨時端口和IP_TABLE最大跟蹤的TCP連接數(shù)有限制,編輯/etc/sysctl.conf,在文件中添加如下行

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

完畢,現(xiàn)在連接可以到4.5w左右差不多,我的機(jī)器會報以下錯誤


file
個人聯(lián)系方式QQ:944484545,歡迎大家的加入,分享學(xué)習(xí)是一件開心事
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容