index.js 1.06 KB
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;
}