Я пытаюсь выполнить симуляцию в nodeJS потока в клиентском серверном приложении, которое изменяет данные с интервалом в 20 мс для слушателя и отправителя.Лизенер должен проверять данные с сервера каждые 1 с, а отправитель при необходимости отправляет на сервер некоторую информацию.
Я пытался создать сервер и setInterval, который соединяет клиента для чтения данных, но этоКажется, что каждый раз, когда я подключаю клиента, все данные в сервере сбрасываются, и моя функция запуска не работает должным образом.
function sleep(time) {
return function (callback) {
setTimeout(function(){
console.log(time);
callback();
}, time);
}
}
var server = net.createServer(function (socket) {
var i = 1;
var totalTime = 1000;
var time = 20;
while (time<totalTime){
run(function*(){
i++;
yield sleep(20);
console.log("modified datas!"+ i);
});
time +=20;
}
socket.write('write to client\r\n');
socket.pipe(socket);
});
server.listen(1337, '127.0.0.1');
setInterval(
function () {
var net = require('net');
var client = "1";
var i = 0;
var client = new net.Socket();
client.connect(1337, '127.0.0.1', function () {
console.log('Connected');
// client.write("Send from client");
});
client.on('data', function (data) {
console.log('DATAS IN CLIENT:::: ' + data);
i++;
if (i == 2)
client.destroy();
// client.destroy(); // kill client after server's response
});
client.on('close', function () {
console.log('Connection closed');
});
},
6000
);
Вот мой терминал с этого момента.
Connected
DATAS IN CLIENT:::: write to client
20
modified datas!50
20
modified datas!50
20
modified datas!50
20
modified datas!50
20
modified datas!50
...
Connected
DATAS IN CLIENT:::: write to client
20
modified datas!50
20
modified datas!50
20
modified datas!50
20
modified datas!50
20
modified datas!50
иЯ ищу данные для продолжения при подключении нового клиента
Connected
DATAS IN CLIENT:::: write to client
20
modified datas!1
20
modified datas!2
20
modified datas!3
20
modified datas!5
20
modified datas!6
...
Connected
DATAS IN CLIENT:::: write to client
20
modified datas!7
20
modified datas!8
20
modified datas!9
20
modified datas!10
20
modified datas!11