Merhaba NodeJS kullanarak TCP portu üzerinden req, resp çalışan bir kod bloğum var. Interval ile server'a 200 milisaniyede bir sorgu gönderip yanıt alıyorum ve MYSQL'e kaydediyorum. Kodlarım çalışırken bir sorun yok yanlız bir süre sonra aşağıdaki hatayı almaya başlıyorum. Hatada server offline görünüyor ama aslında cihaz açık ve başka Clientler bağlanıp data çekmeye devam ediyor. Benim yapmak istediğim bu hata geldiğinde interval içindeki kodları yeniden çalıştırabilmek veya bu hatayı nasıl geçebilirim? Yardımcı olursanız sevinirim.
//HATA
[Arguments] {
'0': UserRequestError {
err: 'Offline',
message: 'no connection to modbus server',
response: undefined
}
}
//KODLARIM
let Modbus = require("jsmodbus");
let net = require("net");
let socket = new net.Socket();
let client = new Modbus.client.TCP(socket);
let mysql = require("mysql");
let options = {
host: "192.168.1.12",
port: 502,
autoReconnect : true,
timeout : 5000,
unitId : 0
};
socket.on("connect", function() {
client
setInterval(function () {
client.readHoldingRegisters(6, 1)
.then(function (resp) {
console.log(resp.response._body._values);
oku = resp.response._body._values;
// socket.end()
var con = mysql.createConnection({
host: "localhost",
user: "root",
password: "NKoo0074",
database: "deneme"
});
con.connect(function(err) {
if (err) throw err;
var sql = "UPDATE tablo SET deger=" + oku + " WHERE id=" + 1;
con.query(sql, function (err, result) {
if (err) throw err;
console.log(result.affectedRows + " kayıt eklendi.");
con.end();
});
});
}).catch(function () {
console.error(arguments)
clearTimeout()
})
}, 200)
socket.on('disconnect',function(socket){
console.log('socket disconnect');
client.close();
delete client;
});
});
socket.on("error", console.error);
socket.connect(options);