Suggest a feature
×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Language: Javascript
Posted by: matias s..
Added: Nov 4, 2019 3:45 AM
Views: 6
  1. const WebSocket = require('ws');
  2. var axios = require('axios');
  3. var url = require('url');
  4. const wss = new WebSocket.Server({
  5.     port: 8443
  6. });
  7. var connections = {};
  8. //enviar();
  9. wss.on('connection', function (ws, req) {
  10.     let demora = req.url.replace('/', '');
  11.     let params = url.parse(req.url, true).query;
  12.    
  13.     console.log(demora);
  14.     console.log("Url:", req.url);
  15.     console.log("Parametros:", params.clientId);
  16.     connections[ws] = ws;
  17.     //ws.send('ok');
  18.     ws.on('message', function (message) {
  19.    
  20.         console.log("mensaje:", message);
  21.         params = stringToJson(message);
  22.         console.log("Parametros:", params.demora);
  23.         if (params.demora) {
  24.             console.log("Entre");
  25.             getDemora(params.demora, params.clientId, ws);
  26.         } else {
  27.             ws.send('OK');
  28.         }
  29.  
  30.  
  31.         //enviar(ws, demora);
  32.  
  33.  
  34.     });
  35. });
  36.  
  37. function stringToJson(str) {
  38.  
  39.     try {
  40.         return JSON.parse(str);
  41.     } catch (e) {
  42.         return false;
  43.     }
  44. }
  45.  
  46. function getDemora(demora = 0, clienteId = 1, ws) {
  47.     console.log("Enviando demora:", demora);
  48.     axios.get('http://testyii2.local/rest/get-delay', {
  49.             params: {
  50.                 demora: demora,
  51.                 clientId: clienteId
  52.             }
  53.         })
  54.         .then(response => {
  55.             console.log(response.data);
  56.             console.log(response.data);
  57.             ws.send('OK');
  58.  
  59.  
  60.         })
  61.         .catch(error => {
  62.             console.log(error);
  63.         });
  64. }
  65.  
  66. function enviar(demora = 10) {
  67.     axios.get('http://testyii2.local/rest/auth?', {
  68.             params: {
  69.                 demora: demora
  70.             }
  71.         })
  72.         .then(response => {
  73.             console.log(response.data);
  74.             console.log(response.data);
  75.  
  76.  
  77.  
  78.         })
  79.         .catch(error => {
  80.             console.log(error);
  81.         });
  82. }
  83.  
  84. function enviarRecursivo(ws, demora) {
  85.     axios.get('http://testyii2.local/rest/auth?', {
  86.             params: {
  87.                 demora: demora
  88.             }
  89.         })
  90.         .then(response => {
  91.             console.log(response.data);
  92.             console.log(response.data);
  93.             ws.send('wait ' + demora + ' seconds');
  94.             demora = demora - 1;
  95.             if (demora === 0) {
  96.                 console.log('Envio Finalizado');
  97.                 return;
  98.             }
  99.             enviar(ws, demora);
  100.  
  101.         })
  102.         .catch(error => {
  103.             console.log(error);
  104.         });
  105. }
Comments disabled