用socket.io广播?

时间:2011-05-03 02:06:55

标签: json node.js socket.io

使用socket.broadcast()向客户端广播一个从数据库结果提供JSON字符串的简单函数。我想做的是在值发生变化时更新客户端。目前,广播功能使用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 :(得分:0)

这取决于您发送的数据。套接字的一个好处是您可以选择何时向客户端发送数据。当您有新的要发送的内容时,请保存一些获取请求并仅广播数据。

相关问题