Хотя, конечно, ставить setInterval вообще в зависимость от коннектов - это ерунда.
Вот так более лучше.
var WebSocketServer = new require('ws');
var EventEmitter = require('events');
function MyEmitter() {}
MyEmitter.prototype = Object.create(EventEmitter.prototype);
var clients = {};
var webSocketServer = new WebSocketServer.Server({
port: 3001
}, function() {console.log('WebSocketServer-PORT: 3001')});
webSocketServer.on('connection', function(ws) {
var id = Math.random();
clients[id] = ws;
console.log("connect " + id);
ws.on('close', function() {
console.log('disconnect ' + id);
delete clients[id];
console.log(Object.keys(clients));
});
});
var myEmitter = new MyEmitter();
myEmitter.on('start', () => {
setInterval(function() {
for (var key in clients) {
clients[key].send('Hello, World!!!');
}
}, 3000);
});
myEmitter.emit('start');