joyent-portal/spikes/metrics-service/ws/src/metric.js
2016-11-04 17:11:35 +00:00

31 lines
500 B
JavaScript

const Emitter = require('component-emitter');
const cdm = {};
module.exports = (server) => ({
on: (id) => {
if (cdm[id]) {
cdm[id].sockets +=1;
return;
}
let messageId = 0;
const interval = setInterval(() => {
server.publish(`/stats/${id}`, {
id: messageId += 1
});
}, 500);
cdm[id] = {
interval,
sockets: 1
};
},
off: (id) => {
if (!(cdm[id].sockets -= 1)) {
clearInterval(cdm[id].interval);
}
}
});