-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtcpserver.js
87 lines (67 loc) · 2.16 KB
/
tcpserver.js
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
var net = require('net');
var chart = require('chart');
var clear = require('clear');
var fake = require('./fake');
var FAKE = fake(512 * 1024);
var sockets = new Set()
var server = net.createServer(function(socket) {
sockets.add(socket);
console.log('Connection')
// socket.on('message', function incoming(message) {
// console.log('received: %s', message);
// });
var clearme;
function done() {
sockets.delete(socket);
clearTimeout(clearme);
socket = null
}
socket.on('error', function close() {
console.log('Error');
done();
});
socket.on('close', function close() {
console.log('Close');
done();
});
clearme = setTimeout(fake_update, 0);
var start = Date.now();
// setTimeout( function destroySocket() {
// console.log('DESTROY')
// socket.close()
// socket = null
// }, 0.5 * 1000 * 60);
function fake_update() {
var fake_data = FAKE + fake(4);
if (socket) socket.write(Buffer(fake_data));
var timeout = 2000;
if (Date.now() - start > 60 * 1.5 * 1000) {
console.log('SOCKET stop sending')
} else {
clearme = setTimeout(fake_update, timeout);
}
}
});
var PORT = 12345;
var LISTEN = '0.0.0.0';
server.listen(PORT, LISTEN)
var data = []
var time = Date.now()
setInterval(function() {
if (global.gc) { gc(); gc(); }
clear();
console.log(chart(data, { width: 120, height: 40 }));
console.log('Sockets', sockets.size);
var mem = process.memoryUsage();
data.push(mem.rss / 1024 / 1024)
console.log('RSS', (mem.rss / 1024 / 1024).toFixed(2), 'MB' )
console.log('HeapTotal', (mem.heapTotal / 1024 / 1024).toFixed(2), 'MB' )
console.log('HeapUsed', (mem.heapUsed / 1024 / 1024).toFixed(2), 'MB' )
console.log( ((Date.now() - time) / 1000).toFixed(2), 's')
var socketBufferSize = 0;
sockets.forEach( s => {
socketBufferSize += s.bufferSize;
});
console.log('Socket Buffer Size', (socketBufferSize / 1024 / 1024).toFixed(2), 'MB' )
console.log('Running TCP Server on port ' + LISTEN + ':' + PORT);
}, 2000)