我正在尝试构建一个网络应用程序,它在 map 上显示一个点并每 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);
});
最佳答案
改用javascript的setinterval方法
关于javascript - 通过 socket.io 每 10 秒发送一次数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23384791/