Хорошо, поэтому я не уверен на 100%, в чем заключается ваша конкретная проблема, но я написал простой клиент и сервер на основе вашего кода, и он работает довольно хорошо, поэтому посмотрите, поможет ли это вам.
Сервер:
const net = require('net');
var dummy = {
ServerDist: 1
};
var server = net.createServer(function(socket) {
let temp = JSON.stringify(dummy)
console.log(temp);
socket.write(temp);
socket.on('data', data => {
let temp = JSON.stringify(dummy);
console.log(temp);
socket.write(temp);
});
});
server.listen(1337, '127.0.0.1');
Клиент
var net = require('net');
var HOST = '127.0.0.1';
var PORT = 1337;
var client = new net.Socket();
client.connect(PORT, HOST, function () {
console.log('CONNECTED TO: ' + HOST + ':' + PORT);
client.write('init');
});
client.on('data', function (data) {
console.log('Get Data: ' + data);
let Cdata = JSON.parse(data);
if (Cdata.ServerDist === 1) {
let sentMsg = {ClientID: 'Bob', TrackSystemNos: '13992881XXX'};
client.write(JSON.stringify(sentMsg));
console.log('Sent Msg: ' + JSON.stringify(sentMsg))
}
}
);
Вывод:
Get Data: {"ServerDist":1}
Sent Msg: {"ClientID":"Bob","TrackSystemNos":"13992881XXX"}
Get Data: {"ServerDist":1}
Sent Msg: {"ClientID":"Bob","TrackSystemNos":"13992881XXX"}
Get Data: {"ServerDist":1}
Sent Msg: {"ClientID":"Bob","TrackSystemNos":"13992881XXX"}
Get Data: {"ServerDist":1}
Sent Msg: {"ClientID":"Bob","TrackSystemNos":"13992881XXX"}
Get Data: {"ServerDist":1}
Sent Msg: {"ClientID":"Bob","TrackSystemNos":"13992881XXX"}
Get Data: {"ServerDist":1}
Sent Msg: {"ClientID":"Bob","TrackSystemNos":"13992881XXX"}
Get Data: {"ServerDist":1}
Sent Msg: {"ClientID":"Bob","TrackSystemNos":"13992881XXX"}
Старый ответ Я считаю вашу проблемуsetinterval - это асинхронный вызов. Поэтому, как только вы вызываете его, код продолжает выходить из функции соединения (скорее всего, завершает соединение). Setinterval получает первый ответ, потому что он существует от вызова до закрытия, но, поскольку соединение закрыто, он больше не получает.
Вы пытались использовать цикл while внутри соединения, чтобы держать соединение открытым?