我想使用node.js,socket.io和socket.io-client运行压力测试。
我想获取网络带宽,处理器/内存使用情况等。
我在亚马逊上有一个大小为XLARGE的node.js socket.io服务器。
现在,我想在其他亚马逊服务器上运行多个socket.io-clients,并将它们连接到我的服务器。
我在不同的进程中运行它,但是一个node.js进程占用15MB内存。我想同时测试100k socket.io连接,所以这不是一个选择。
我的问题是:例如,我可以在一个node.js实例中运行6万个不同的socket.io-clients吗?
这是我的客户代码:
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
});
然后循环初始化您的套接字。
这是一个完整的测试示例:
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();
}
为了进行测试,我让客户端每秒输出五次递增编号。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句