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

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

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

所以在search之后,我偶然发现了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); }); 

改用javascript的setinterval方法