module.exports = function() { const webSocketServer = require('ws').Server; var clients = []; const objWs = {}; objWs.wsServer = new webSocketServer({ port: config.port }); objWs.wsServer.on('connection', function connection(ws) { console.log('open socket server'); ws.on('message', function incoming(message) { message = JSON.parse(message.toString('utf8')); switch (message.action) { case 'gln': clients.push({ws: ws, gln: message.gln}); break; default: console.log(message.action); } }); }); objWs.getEntidad = function(gln, tableName, where) { return new Promise(function(resolve, reject) { clients.forEach(client => { if (client.gln == gln) { var enviar = { action: 'getEntity', tableName: tableName, where: where } client.ws.send(JSON.stringify(enviar)); client.ws.on('message', function(message) { console.log(JSON.parse(message)); resolve(message.data); }); } }); }); } return objWs; }