То, что я пытаюсь сделать, это получить список значений коррозионности из файла gpx и затем отправить их на сервер webSocket, но хотелось бы, чтобы между ними была небольшая задержка, составляющая от 1 до 3 секунд
const WebSocket = require('ws');
fs = require('fs');
var parser = require('xml2json');
const ws = new WebSocket('ws://172.18.0.4:3000');
coordinates = new Array();
//counter = 1;
if(!process.argv[2]){
console.error("Please add file from gpx directory eg. 'node index gsx.file'");
process.exit(1);
}
ws.on('open', function open() {
fs.readFile('./gpx/'+process.argv[2], function(err, data) {
var json = parser.toJson(data);
obj = JSON.parse(json);
coordinates = obj.gpx.trk.trkseg.trkpt;
ws.send(JSON.stringify(coordinates[0]), function ack(error) {
if(error){
console.log(error.message);
}
});
});
});
counter = 0;
ws.on('message', function incoming(data) {
let randomtime = randomInt(1000,3000)
if(counter < (coordinates.length -1)){
setTimeout(function() {
ws.send(JSON.stringify(coordinates[counter]), function ack(error) {
if(error){
console.log(error.message);
}
});
}, randomtime);
counter = counter + 1;
}else{
counter = 0;
}
});
ws.on('error', function error(err){
console.log(err);
});
function randomInt(low, high) {
return Math.floor(Math.random() * (high - low) + low)
}
проблема в том, что когда я запускаю этот скрипт, он запускается медленно, просто становиться все быстрее и быстрее, а мы делаем больше, и я не уверен, почему