const WebSocket = require('ws');
var axios = require('axios');
var url = require('url');
const wss = new WebSocket.Server({
port: 8443
});
var connections = {};
//enviar();
wss.on('connection', function (ws, req) {
let demora = req.url.replace('/', '');
let params = url.parse(req.url, true).query;
console.log(demora);
console.log("Url:", req.url);
console.log("Parametros:", params.clientId);
connections[ws] = ws;
//ws.send('ok');
ws.on('message', function (message) {
console.log("mensaje:", message);
params = stringToJson(message);
console.log("Parametros:", params.demora);
if (params.demora) {
console.log("Entre");
getDemora(params.demora, params.clientId, ws);
} else {
ws.send('OK');
}
//enviar(ws, demora);
});
});
function stringToJson(str) {
try {
return JSON.parse(str);
} catch (e) {
return false;
}
}
function getDemora(demora = 0, clienteId = 1, ws) {
console.log("Enviando demora:", demora);
axios.get('http://testyii2.local/rest/get-delay', {
params: {
demora: demora,
clientId: clienteId
}
})
.then(response => {
console.log(response.data);
console.log(response.data);
ws.send('OK');
})
.catch(error => {
console.log(error);
});
}
function enviar(demora = 10) {
axios.get('http://testyii2.local/rest/auth?', {
params: {
demora: demora
}
})
.then(response => {
console.log(response.data);
console.log(response.data);
})
.catch(error => {
console.log(error);
});
}
function enviarRecursivo(ws, demora) {
axios.get('http://testyii2.local/rest/auth?', {
params: {
demora: demora
}
})
.then(response => {
console.log(response.data);
console.log(response.data);
ws.send('wait ' + demora + ' seconds');
demora = demora - 1;
if (demora === 0) {
console.log('Envio Finalizado');
return;
}
enviar(ws, demora);
})
.catch(error => {
console.log(error);
});
}