Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 在AWS节点上,socketcluster无法连接超过1000个连接大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在运行一个简单的socketcluster node.js服务器并从node.js websocket客户端连接到它.

通过在我的本地Ubuntu14.04上运行服务器,我可以将超过10,000个客户端连接到服务器.但是在AWS EC2(c3-largE)ubuntu14.04实例上,相同的代码仅连接少于1000个连接.

修改了etc / security / limits.conf,并在EC2实例上将“soft nofile”和“hard nofile”的限制设置为65535.

建议Node.js maxing out at 1000 concurrent connections的Posix软限制没有帮助.

其他sysctl参数在我的本地ubuntu和EC2实例之间没有太大差异.

延迟可能不是问题,因为我试图从多个客户端计算机连接到服务器仍然保持连接数量< 1000. 是否存在可能影响性能的AWS环境变量?
进出EC2的消息数量是否有限制?

var posix = require('posix');
posix.setrlimit('nofile',{soft:10000});

var SocketCluster = require('socketcluster').socketCluster;
var numcpus = require('os').cpus().length;
var numWorkers = numcpus;

var start = Date.Now();
console.log("..... StarTing Server....");

process.on('uncaughtException',function (err) {
    console.log("***** SEVERE ERROR OCCURED!!! *****");
    console.log(err);
});

var socketCluster = new SocketCluster({
  balancers: 1,workers: numWorkers,stores: 1,port: 7000,appName: 'mysimapp',workerController: __dirname + '/sim_server.js',addressSocketLimit: 0,socketEventLimit: 100,rebootWorkerOnCrash: true,usesmartBalancing: true
});

–sim_server.js–

@H_297_18@module.exports.run = function(worker) { var posix = require('posix'); posix.setrlimit('nofile',{soft:10000}); var connection_db = {}; var opencount = 0; var closecount = 0; var msgcount = 0; function status() { console.log('open: ' + opencount); console.log('close: ' + closecount); //console.log('receive: ' + msgcount); setTimeout(function(){ status(); },10000); } status(); websocket_server = worker.getSCServer(); websocket_server.on('connection',function(socket){ var mac; socket.on('mac-id',function(data) { opencount++; mac = data; connection_db[mac] = socket; }); socket.on('message',function(data) { msgcount++; }); socket.on('close',function() { delete connection_db[mac]; closecount++; }); }); process.once('SIGINT',function() { process.exit(0); }); }

解决方法

我的不好,代码或AWS没有任何问题. 在我的设置中,用于AWS设置的switch / isp-connection无法处理许多连接.

大佬总结

以上是大佬教程为你收集整理的node.js – 在AWS节点上,socketcluster无法连接超过1000个连接全部内容,希望文章能够帮你解决node.js – 在AWS节点上,socketcluster无法连接超过1000个连接所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。