通过socket.io每10秒发送一次数据

时间:2014-04-30 09:46:08

标签: javascript node.js socket.io

我正在尝试构建一个在地图上显示点并每隔10秒更新一次位置的网络应用程序。 我现在解决它的方法是每隔10秒通过javascripts超时轮询页面并解析结果。这很好,但是当有多个浏览器轮询同一个网页时,网络服务器资源显然会飙升。即使将memcached添加为中间文件。

我的下一个想法是每隔10秒使用最新的位置信息轮询页面,只需创建一个打开的套接字并通过它发送新数据。

所以在搜索之后我偶然发现了socket.io,它应该完全符合我的要求,但是我没有让它工作。

即使像以下一样基本的东西也不起作用;它只是在控制台中显示一次hello world数据。而不是每一秒.... 这里出了什么问题?

服务器

var io = require('socket.io').listen(1332);
io.sockets.on('connection', function (socket) {

    setTimeout(function(){
        sentPosition(socket);
    }, 1000);
});

function sentPosition(socket){
    socket.emit('position', { 
            hello: 'world' 
        });
}

浏览器

var socket = io.connect('http://myserver.com:8080');
socket.on('position', function (data) {
    console.log(data);
});

1 个答案:

答案 0 :(得分:2)

使用javascript setinterval方法