-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathbench.js
More file actions
41 lines (32 loc) · 1.26 KB
/
bench.js
File metadata and controls
41 lines (32 loc) · 1.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
var profile = require('profiler');
var io = require('socket.io-client');
var message = "o bispo de constantinopla nao quer se desconstantinopolizar";
function user(shouldBroadcast, host, port) {
var socket = io.connect('http://' + host + ':' + port, {'force new connection': true});
socket.on('connect', function() {
// Start messaging loop
if (shouldBroadcast) {
// message will be broadcasted by server
socket.emit('broadcast', message);
} else {
// message will be echoed by server
socket.send(message);
}
socket.on('message', function(message) {
socket.send(message);
});
socket.on('broadcastOk', function() {
socket.emit('broadcast', message);
});
});
};
var argvIndex = 2;
var users = parseInt(process.argv[argvIndex++]);
var rampUpTime = parseInt(process.argv[argvIndex++]) * 1000; // in seconds
var newUserTimeout = rampUpTime / users;
var shouldBroadcast = process.argv[argvIndex++] === 'broadcast' ? true : false;
var host = process.argv[argvIndex++] ? process.argv[argvIndex - 1] : 'localhost';
var port = process.argv[argvIndex++] ? process.argv[argvIndex - 1] : '3000';
for(var i=0; i<users; i++) {
setTimeout(function() { user(shouldBroadcast, host, port); }, i * newUserTimeout);
};