在一个node.js实例中运行多个socket.io-clients

我想用node.js,socket.io和socket.io-client来运行压力testing。

我想获得networking带宽,处理器/内存使用等

我有一个node.js socket.io服务器在亚马逊,大小XLARGE。

现在我想在其他亚马逊服务器上运行多个socket.io客户端,并将它们连接到我的服务器。

我在不同的进程中运行它,但是一个node.js进程需要15MB的内存。 我想同时testing100k的socket.io连接,所以这不是一个选项。

我的问题是:我可以运行,例如,一个node.js实例中的60k不同的socket.io-客户端?

这是我的客户代码:

var socket = require('socket.io-client')('http://someAddress:3000'); socket.on('connect', function(){ socket.on('news', function(data){ }); socket.emit('event', { data: "Connection test." }); }); 

你必须通过forceNew选项:

 var socket = require('socket.io-client')('http://someAddress:3000', { forceNew: true }); 

然后在一个循环中初始化你的套接字。

这里是一个完整的testing例子:

server.js:

 var io = require('socket.io')(); io.on('connection', function(socket){ var i = 0; setInterval(function() { socket.emit('news', { message: i++ }); }, 1000); }); io.listen(3000); 

客户端,JS:

 function testOne() { var socket = require('socket.io-client')('http://127.0.0.1:3000', {forceNew: true}); socket.on('connect', function(){ socket.on('news', function(data){ console.log(data.message); }); }); } for (var i = 0; i < 5; i++) { testOne(); } 

为了testing目的,我让客户端每秒输出五次递增数字。