Server : Apache/2.4.52 (Ubuntu) System : Linux srv913213 5.15.0-179-generic #189-Ubuntu SMP Tue May 5 18:20:56 UTC 2026 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /lib/node_modules/pm2/node_modules/pm2-multimeter/example/ |
var http = require('http');
var multimeter = require('multimeter');
http.createServer(function (req, res) {
res.setHeader('content-type', 'application/octet-stream');
var multi = multimeter(res);
multi.charm.on('^C', process.exit);
multi.charm.reset();
var bars = [];
var progress = [];
var deltas = [];
for (var i = 0; i < 5; i++) {
var s = 'ABCDE'[i] + ': \n';
multi.write(s);
var bar = multi(s.length, i + 1, {
width : 20,
solid : {
text : '|',
foreground : 'white',
background : 'blue'
},
empty : { text : ' ' },
});
bars.push(bar);
deltas[i] = 1 + Math.random() * 9;
progress.push(0);
}
multi.write('\nbeep boop\n');
var pending = progress.length;
var iv = setInterval(function () {
progress.forEach(function (p, i) {
progress[i] += Math.random() * deltas[i];
bars[i].percent(progress[i]);
if (p < 100 && progress[i] >= 100) pending --;
if (pending === 0) {
multi.write('\nAll done.\n');
res.end();
}
});
}, 100);
res.connection.on('end', function () {
multi.destroy();
clearInterval(iv);
});
}).listen(8080);
console.log('curl -N localhost:8080');