Как не выполнять код после получения старых запросов на получение, если получены новые - PullRequest
0 голосов
/ 05 октября 2018

Я использую локальный веб-сервер node.js.Из-за пределов машины я посылаю запрос на получение (http://ip:port/send_data?data) с данными каждые 1 миллисекунду (это требуется) каждого игрока. Затем игрок помещается в массив (если идентификатор совпадает, я обновляю его данные)., если нет, вставьте его в массив.) Эти данные должны отображаться пользователям в режиме реального времени в http://ip:port/data-fetcher.

const express = require('express'),
      server = express();

var json_data = "";
var player_object = "";
var player_exists = false;

server.set('port', process.env.PORT || 80);

server.get('/data-fetcher',(request,response)=>{
    json_data = "";
    response.sendFile(__dirname + '/data-fetcher.html');
});

server.get('/send-data',(request,response)=>{  
    player_object = request.query;

    player_exists = false;

    if(json_data != "")
    {
        for(var i = 0; i < json_data.players.length; i++)
        {
            if(json_data.players[i].id == player_object.id)
            {
                json_data.players[i] = player_object;
                player_exists = true;
            }
        }

        if(!player_exists)
        {
            json_data.players.push(player_object);
        }

    } else {
        json_data = {players:[], entities:[{hello:"hello"}, {hello:"hello"}]};
        json_data.players.push(player_object);
    }  
    response.json("hello");
});


server.get('/get-data',(request,response)=>{  
    response.json(json_data);
})

server.listen(80,()=>{
    console.log('Express server started at port 80');
});

Этот метод работает быстро и стоит очень мало мс. Проблемаявляется то, что после остановки симулятора, который отправляет запросы на получение сайта, данные на сайте продолжают меняться в течение примерно 10 секунд. Я предполагаю, что это из-за трафика, который мог появиться. Есть ли способ не выполнять код после получениястарые запросы после получения новых? Или есть лучший способ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...