我正在尝试构建一个在地图上显示点并每隔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);
});
答案 0 :(得分:2)
使用javascript setinterval方法