Вещание с socket.io? - PullRequest
       9

Вещание с socket.io?

2 голосов
/ 03 мая 2011

Простая функция, которая обслуживает строку JSON из результата базы данных, транслируется клиенту с помощью socket.broadcast (). Что я хочу сделать, это обновить клиентскую часть, когда значение изменится. В настоящее время функция широковещания использует setTimeout для непрерывной трансляции каждую 1 секунду. Просматривая журналы запросов в Firebug, вы получаете непрерывный ответ GET, который, я не думаю, является хорошей вещью ...

Просто интересно, как лучше всего использовать сокеты? Эти запросы что-то убьют? Будет ли решение сравнивать временные метки или что-то подобное, чтобы остановить ненужную отправку запросов?

//server-side
function checkData() {
    client.query('SELECT * FROM data', function selectCb(err, data) {
        socket.broadcast(processData(data));
        setTimeout(checkData, 1000);
    });
}

//client-side
socket.on('message', function(data) {
    $('#container').html(JSON.stringify(JSON.parse(data), null));
});

//sample data
[{
    "type":"Statistic1",
    "value":65.2,
    "timestamp":"2011-04-29T16:22:39.000Z"
},{
    "type":"Statistic2",
    "value":18.6,
    "timestamp":"2011-04-29T16:22:39.000Z"
}]

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 03 мая 2011

Это зависит от данных, которые вы отправляете. Одним из преимуществ сокетов является то, что вы можете выбирать, когда отправлять данные клиентам. Сохраняйте некоторые запросы на получение и передавайте данные только тогда, когда у вас есть что-то новое для отправки.

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